<!DOCTYPE html>
<html manifest="app.manifest">
<head>	
  <meta charset="UTF-8" />
	<meta name="apple-mobile-web-app-capable" content="yes">
	<meta name="mobile-web-app-capable" content="yes">
	<meta name="format-detection" content="telephone=yes">
	<meta name="apple-mobile-web-app-status-bar-style" content="default">
	<meta name="viewport" content="width=device-width, maximum-scale=1.0, initial-scale=1.0, user-scalable=no"/>

	<title>ControlsProgressBar</title>

	<style type="text/css">*{margin:0;padding:0;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-border-style:none;border-style:none;-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:always;font-smoothing:always;-webkit-user-select:none;user-select:none;font-family:"Helvetica Neue",Helvetica,sans-serif}html,body{-webkit-touch-callout:none;user-select:none;background-color:#000;overflow:hidden}button{background:none}ul{cursor:default;list-style:none}ul li{background-color:#FFF;border:1px solid #999;color:#222;cursor:hand;font-size:17px;font-weight:bold;margin-bottom:-1px;padding:12px 12px;text-decoration:none}ul li:first-child{border-top-left-radius:8px;border-top-right-radius:8px}ul li:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ul li:active{color:#FFF;background-image:url();background-size:auto 100%;background-repeat:repeat-x}.TW3CustomControl{cursor:default;background-color:#CECECE}.TW3ScrollContentIndicator{background-color:#222;border:solid 1px #9A9A9A}.TW3CustomForm,.TW3Form{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);background-color:#D5DCE1;background-size:5px 100%;background-image:-webkit-gradient(linear,left top,right top,from(#c5ccd4),color-stop(.75,#c5ccd4),color-stop(.75,transparent),to(transparent));background-image:-moz-linear-gradient(left,#c5ccd4,#c5ccd4 75%,transparent 75%,transparent)}.TW3BlockBox{overflow:hidden;-webkit-touch-callout:none;background-color:rgba(0,0,0,.5)}.TW3AlertDialog{z-index:1000;padding:6px 5px;border:2px solid rgba(178,183,194,.8);border-top-color:rgba(226,227,228,.8);background:rgba(11,27,68,.8) url() no-repeat 50% 0;color:#fff;text-align:center;-webkit-border-radius:15px;border-radius:15px;-webkit-box-shadow:0 8px 19px rgba(0,0,0,.9);box-shadow:0 8px 19px rgba(0,0,0,.9);-webkit-text-shadow:0 -1px 0 rgba(0,0,0,.8);text-shadow:0 -1px 0 rgba(0,0,0,.8)}.TW3AlertButton{font-size:18px;font-weight:bold;text-align:center;text-decoration:none;color:#fff;border:1px solid rgba(19,30,58,.9);background-color:#5f6981;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#b0b5c0),color-stop(50%,#6a748b),color-stop(51%,#505a75),color-stop(100%,#5f6981));-webkit-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.8);box-shadow:0 1px 0 rgba(0,0,0,.8);-webkit-text-shadow:0 -1px 0 rgba(0,0,0,.8);text-shadow:0 -1px 0 rgba(0,0,0,.8)}.TW3AlertButton:active{background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#5f6981),color-stop(50%,#505a75),color-stop(51%,#6a748b),color-stop(100%,#b0b5c0) )}@-webkit-keyframes move_bg_progressmeter{0%{background-position:50px 50px}100%{background-position:0 0}}@-moz-keyframes move_bg_progressmeter{0%{background-position:50px 50px}100%{background-position:0 0}}@-o-keyframes move_bg_progressmeter{0%{background-position:50px 50px}100%{background-position:0 0}}.TW3ProgressBar{border:2px solid rgba(0,0,0,.3);background-color:#FFF;overflow:hidden;-webkit-touch-callout:none;-webkit-border-radius:25px;border-radius:25px}.TW3ProgressMeter{overflow:hidden;background-color:rgba(144,156,179,1);-webkit-touch-callout:none;-webkit-animation:move_bg_progressmeter 3s linear infinite;animation:move_bg_progressmeter 3s linear infinite;-webkit-background-size:50px 50px;background-size:50px 50px;-webkit-border-radius:25px;border-radius:25px;background-image:-webkit-gradient(linear,0 0,100% 100%,color-stop(.25,rgba(255,255,255,.2)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.2)),color-stop(.75,rgba(255,255,255,.2)),color-stop(.75,transparent),to(transparent) );background-image:linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent )}.TW3ScrollbarUpBtn{border-top:1px solid rgba(0,0,0,.3);background-color:#FFF;overflow:hidden;border-bottom-left-radius:24px;border-bottom-right-radius:24px;box-shadow:0 4px 0 -2px #F1F1F1 inset,0 2em 2em -2em #AAA inset,0 0 2px rgba(0,0,0,.5)}.TW3ScrollbarDownBtn{border-bottom:1px solid rgba(0,0,0,.3);background-color:#FFF;overflow:hidden;border-top-left-radius:24px;border-top-right-radius:24px;box-shadow:0 4px 0 -2px #F1F1F1 inset,0 2em 2em -2em #AAA inset,0 0 2px rgba(0,0,0,.5)}.TW3ScrollbarUpBtn:active,.TW3ScrollbarDownBtn:active{background-color:#E5E5E5}.TW3ScrollbarDownBtn:hover,.TW3ScrollbarUpBtn:hover{cursor:pointer}.TW3ScrollbarLeftBtn{border-right:1px solid rgba(0,0,0,.3);background-color:#FFF;overflow:hidden;border-top-left-radius:24px;border-bottom-left-radius:24px;box-shadow:0 4px 0 -2px #F1F1F1 inset,0 2em 2em -2em #AAA inset,0 0 2px rgba(0,0,0,.5)}.TW3ScrollbarRightBtn{border-left:1px solid rgba(0,0,0,.3);background-color:#FFF;overflow:hidden;border-top-right-radius:24px;border-bottom-right-radius:24px;box-shadow:0 4px 0 -2px #F1F1F1 inset,0 2em 2em -2em #AAA inset,0 0 2px rgba(0,0,0,.5)}.TW3ScrollbarLeftBtn:active,.TW3ScrollbarRightBtn:active{background-color:#E5E5E5}.TW3ScrollbarLeftBtn:hover,.TW3ScrollbarRightBtn:hover{cursor:pointer}.TW3ScrollbarHandle{border-radius:25px;border:1px solid rgba(0,0,0,.3);background-color:#FFF;overflow:hidden}.TW3ScrollbarHandle:active{background-color:#E5E5E5}.TW3ScrollbarHandle:Hover{cursor:pointer}.TW3VerticalScrollbar{border:1px solid rgba(0,0,0,.4);overflow:hidden;border-radius:24px;background-color:rgba(250,250,250,.3);-webkit-touch-callout:none}.TW3VerticalScrollbar:disabled{opacity:.5;cursor:wait}.TW3HorizontalScrollbar{border:1px solid rgba(0,0,0,.4);overflow:hidden;border-radius:24px;background-color:rgba(250,250,250,.3);-webkit-touch-callout:none}.TW3HorizontalScrollbar:disabled{opacity:.5;cursor:wait}.TW3ToolButton{-webkit-box-shadow:0 1px 1px #9aa5bb,0 -1px 1px #8e96a5;box-shadow:0 1px 1px #9aa5bb,0 -1px 1px #8e96a5;-webkit-border-radius:5px;border-radius:5px;cursor:default;color:#fff;font-size:12px;border:solid 1px #54617d;border-color:#484e59 #54617d #4c5c7a #54617d;background:rgb(146,161,191);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(146,161,191,1)),color-stop(25%,rgba(121,138,173,1)),color-stop(50%,rgba(98,118,160,1)),color-stop(53%,rgba(85,106,151,1)),color-stop(75%,rgba(86,108,152,1)),color-stop(95%,rgba(84,105,147,1)));background:-webkit-linear-gradient(top,rgba(146,161,191,1) 0%,rgba(121,138,173,1) 25%,rgba(98,118,160,1) 50%,rgba(85,106,151,1) 53%,rgba(86,108,152,1) 75%,rgba(84,105,147,1) 95%);background:linear-gradient(to top,rgba(146,161,191,1) 0%,rgba(121,138,173,1) 25%,rgba(98,118,160,1) 50%,rgba(85,106,151,1) 53%,rgba(86,108,152,1) 75%,rgba(84,105,147,1) 95%)}.TW3ToolButton:active:enabled{background:rgb(84,105,147);background:-webkit-gradient(linear,left top,left bottom,color-stop(5%,rgba(84,105,147,1)),color-stop(25%,rgba(86,108,152,1)),color-stop(47%,rgba(85,106,151,1)),color-stop(50%,rgba(98,118,160,1)),color-stop(75%,rgba(121,138,173,1)),color-stop(100%,rgba(146,161,191,1)));background:-webkit-linear-gradient(top,rgba(84,105,147,1) 5%,rgba(86,108,152,1) 25%,rgba(85,106,151,1) 47%,rgba(98,118,160,1) 50%,rgba(121,138,173,1) 75%,rgba(146,161,191,1) 100%);background:linear-gradient(to top,rgba(84,105,147,1) 5%,rgba(86,108,152,1) 25%,rgba(85,106,151,1) 47%,rgba(98,118,160,1) 50%,rgba(121,138,173,1) 75%,rgba(146,161,191,1) 100%)}.TW3ToolButton:disabled{Opacity:.5;cursor:wait}.TW3Panel{cursor:inherited;border:2px solid #7c7a77;resize:none;font-size:12px;border-radius:6px;background-color:#FFF}.TW3ToolbarButton{border:0;border-right:2px solid #FFF;font-size:12px;text-align:center;color:#FFF;background-color:rgba(255,255,255,.20);text-shadow:0 -1px -1px rgba(0,0,0,.30)}.TW3ToolbarButton:active{background-color:rgba(0,0,0,.20)}.TW3ToolbarButton:disabled{background-color:transparent}.ButtonDown{border:2px inset}.TW3Toolbar{cursor:default;background-image:-webkit-gradient(linear,left top,left bottom,from(#b2bbca),color-stop(.25,#a7b0c3),color-stop(.5,#909cb3),color-stop(.5,#8593ac),color-stop(.75,#7c8ba5),to(#73839f));border-top:1px solid #dde5ef;border-bottom:1px solid #2d3642;-webkit-box-shadow:rgba(33,33,33,.2) 0 1px 1px;box-shadow:rgba(33,33,33,.2) 0 1px 1px}.TW3Memo,.TW3EditBox,.TW3ComboBox{border:1px solid #acacac;border-radius:5px;resize:none;-webkit-user-select:text;user-select:text}.TW3HeaderControl{cursor:default;border-bottom:1px solid #2d3642;border-top:1px solid #cdd5df;box-shadow:0 1px 1px rgba(33,33,33,.2);background:rgb(178,187,202);background:-webkit-gradient(linear,left top,left bottom,color-stop(1%,rgba(178,187,202,1)),color-stop(25%,rgba(167,176,195,1)),color-stop(47%,rgba(144,156,179,1)),color-stop(50%,rgba(133,147,172,1)),color-stop(75%,rgba(124,139,165,1)),color-stop(100%,rgba(115,131,159,1)));background:-webkit-linear-gradient(top,rgba(178,187,202,1) 1%,rgba(167,176,195,1) 25%,rgba(144,156,179,1) 47%,rgba(133,147,172,1) 50%,rgba(124,139,165,1) 75%,rgba(115,131,159,1) 100%);background:linear-gradient(to top,rgba(178,187,202,1) 1%,rgba(167,176,195,1) 25%,rgba(144,156,179,1) 47%,rgba(133,147,172,1) 50%,rgba(124,139,165,1) 75%,rgba(115,131,159,1) 100%)}.TW3HeaderControl:disabled{cursor:wait;opacity:.5}.TW3Label,TW3LabelText{opacity:1.0;cursor:default}.TW3Label:disabled,TW3LabelText:disabled{text-shadow:0 1px 0 #fff;opacity:.5}.TW3Button{border:solid 2px rgba(32,32,33,.4);-webkit-border-radius:8px;border-radius:8px;background:rgb(226,226,226);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(226,226,226,1)),color-stop(50%,rgba(219,219,219,1)),color-stop(52%,rgba(209,209,209,1)),color-stop(100%,rgba(254,254,254,1)));background:-webkit-linear-gradient(top,rgba(226,226,226,1) 0%,rgba(219,219,219,1) 50%,rgba(209,209,209,1) 52%,rgba(254,254,254,1) 100%);background:linear-gradient(to top,rgba(226,226,226,1) 0%,rgba(219,219,219,1) 50%,rgba(209,209,209,1) 52%,rgba(254,254,254,1) 100%);font-size:18px;font-weight:normal;text-shadow:1px 1px -1px #cecece;color:#000;-webkit-text-size-adjust:auto;-o-text-size-adjust:auto}.TW3Button:active:enabled{color:#FFF;background:rgb(207,231,250);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(207,231,250,1)),color-stop(52%,rgba(99,147,193,1)),color-stop(66%,rgba(78,136,191,1)),color-stop(96%,rgba(192,224,249,1)));background:-webkit-linear-gradient(top,rgba(207,231,250,1) 0%,rgba(99,147,193,1) 52%,rgba(78,136,191,1) 66%,rgba(192,224,249,1) 96%);background:linear-gradient(to top,rgba(207,231,250,1) 0%,rgba(99,147,193,1) 52%,rgba(78,136,191,1) 66%,rgba(192,224,249,1) 96%);text-shadow:none}.TW3Button:disabled{Opacity:.50}.TW3ToggleSwitch{background-color:#FFF;border:1px solid #AAA;border-radius:6px;color:#FFF;font-weight:700;overflow:hidden;box-shadow:0 1px 0 #FFF;user-select:none}.TW3ToggleOnLabel{border-radius:6px;text-align:center;background:#007FEA;text-shadow:0 -1px 0 #093B5C;box-shadow:0 4px 5px -2px rgba(0,0,0,.3) inset}.TW3ToggleOffLabel{border-radius:6px;text-align:center;box-shadow:0 4px 5px -2px rgba(0,0,0,.3) inset}.TW3ToggleKnob{cursor:pointer;background-color:#FFF;border:1px solid #AAA;border-radius:4px;color:#FFF;font-weight:700;overflow:hidden;box-shadow:0 4px 0 -2px #F1F1F1 inset,0 2em 2em -2em #AAA inset,0 0 2px rgba(0,0,0,.5)}.TW3ToggleKnob:hover{background:#E5E5E5}@-webkit-keyframes BACKSCROLL{0%{-webkit-transform:translateZ(0);background-position:0 0}100%{background-position:-557px 0;-webkit-transform:translateZ(0)}}@keyframes BACKSCROLL{0%{transform:translateZ(0);background-position:0 0}100%{background-position:-557px 0;transform:translateZ(0)}}@-webkit-keyframes MOVE-LEFT{0%{-webkit-transform:translateX(100%)}100%{-webkit-transform:translateX(0)}}@-webkit-keyframes MOVE-OUT-LEFT{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes MOVE-LEFT{0%{transform:translateX(100%)}100%{transform:translateX(0)}}@keyframes MOVE-OUT-LEFT{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes MOVE-RIGHT{0%{-webkit-transform:translateX(-100%)}100%{-webkit-transform:translateX(0);visibility:hidden}}@-webkit-keyframes MOVE-OUT-RIGHT{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%);visibility:hidden}}@keyframes MOVE-RIGHT{0%{transform:translateX(-100%)}100%{transform:translateX(0);visibility:hidden}}@keyframes MOVE-OUT-RIGHT{0%{transform:translateX(0)}100%{transform:translateX(100%);visibility:hidden}}@-webkit-keyframes ROTATE-FOREVER{from{-webkit-transform:none}to{-webkit-transform:rotate(360deg)}}@keyframes ROTATE-FOREVER{from{transform:none}to{transform:rotate(360deg)}}</style>


  	<script type="text/javascript">	/* This prevents the window being moved by touches,
	  to give the impression of a native app */
	document.ontouchmove = function(e) { e.preventDefault(); }

	/* Note: If you build with the CSS as an external file,
	the app may execute before the CSS has been properly loaded.
	You may want to use a different bootstrap mechanism. jQuery
	provides a good preloading mechanism for instance. */

	function bootstrap() { var $R = [
	"Method %s in class %s threw exception [%s]",
	"Procedure %s threw exception [%s]",
	"Internal tag-object is null error",
	"Failed to create internal tag-object",
	"Invalid tag handle error",
	"Invalid attribute-name error",
	"Invalid property-name error",
	"Invalid style-name error",
	"Failed to attach element to owner",
	"Owner tag-object is NIL error",
	"invalid owner handle error",
	"Invalid component registration",
	"invalid owner handle error",
	"Failed to initialize from graphics-context: "];
function Trunc(v) { return (v>=0)?Math.floor(v):Math.ceil(v) };
function Trim$_String_Integer_Integer_(s,a,b) { if (a<0) a=0; if (b<0) b=0; return s.substr(a,s.length-a-b) };
function Trim$_String_(s) { return s.replace(/^\s\s*/, "").replace(/\s\s*$/, "") };
var TObject={
	$ClassName: "TObject",
	$Parent: null,
	ClassName: function (s) { return s.$ClassName },
	ClassType: function (s) { return s },
	ClassParent: function (s) { return s.$Parent },
	$Init: function () {},
	Create: function (s) { return s },
	Destroy: function (s) { for (var prop in s) if (s.hasOwnProperty(prop)) delete s.prop },
	Destroy$: function(s) { return s.ClassType.Destroy(s) },
	Free: function (s) { if (s!==null) s.ClassType.Destroy(s) }
};
function Odd(v) { return (v&1)==1 };
function Now() { var d=new Date(); return d.getTime()/8.64e7+25569 };
function IntToHex2(v) { var r=v.toString(16); return (r.length==1)?"0"+r:r };
/**
sprintf() for JavaScript 0.7-beta1
http://www.diveintojavascript.com/projects/javascript-sprintf

Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.
    * Neither the name of sprintf() for JavaScript nor the
      names of its contributors may be used to endorse or promote products
      derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**/

var sprintf = (function() {
	function get_type(variable) {
		return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
	}
	function str_repeat(input, multiplier) {
		for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}
		return output.join('');
	}

	var str_format = function() {
		if (!str_format.cache.hasOwnProperty(arguments[0])) {
			str_format.cache[arguments[0]] = str_format.parse(arguments[0]);
		}
		return str_format.format.call(null, str_format.cache[arguments[0]], arguments);
	};

	str_format.format = function(parse_tree, argv) {
		var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;
		for (i = 0; i < tree_length; i++) {
			node_type = get_type(parse_tree[i]);
			if (node_type === 'string') {
				output.push(parse_tree[i]);
			}
			else if (node_type === 'array') {
				match = parse_tree[i]; // convenience purposes only
				if (match[2]) { // keyword argument
					arg = argv[cursor];
					for (k = 0; k < match[2].length; k++) {
						if (!arg.hasOwnProperty(match[2][k])) {
							throw(sprintf('[sprintf] property "%s" does not exist', match[2][k]));
						}
						arg = arg[match[2][k]];
					}
				}
				else if (match[1]) { // positional argument (explicit)
					arg = argv[match[1]];
				}
				else { // positional argument (implicit)
					arg = argv[cursor++];
				}

				if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {
					throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));
				}
				switch (match[8]) {
					case 'b': arg = arg.toString(2); break;
					case 'c': arg = String.fromCharCode(arg); break;
					case 'd': arg = String(parseInt(arg, 10)); if (match[7]) { arg = str_repeat('0', match[7]-arg.length)+arg } break;
					case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;
					case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;
					case 'o': arg = arg.toString(8); break;
					case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;
					case 'u': arg = Math.abs(arg); break;
					case 'x': arg = arg.toString(16); break;
					case 'X': arg = arg.toString(16).toUpperCase(); break;
				}
				arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);
				pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';
				pad_length = match[6] - String(arg).length;
				pad = match[6] ? str_repeat(pad_character, pad_length) : '';
				output.push(match[5] ? arg + pad : pad + arg);
			}
		}
		return output.join('');
	};

	str_format.cache = {};

	str_format.parse = function(fmt) {
		var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;
		while (_fmt) {
			if ((match = /^[^\x25]+/.exec(_fmt)) !== null) {
				parse_tree.push(match[0]);
			}
			else if ((match = /^\x25{2}/.exec(_fmt)) !== null) {
				parse_tree.push('%');
			}
			else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {
				if (match[2]) {
					arg_names |= 1;
					var field_list = [], replacement_field = match[2], field_match = [];
					if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
						field_list.push(field_match[1]);
						while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
							if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
								field_list.push(field_match[1]);
							}
							else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) {
								field_list.push(field_match[1]);
							}
							else {
								throw('[sprintf] huh?');
							}
						}
					}
					else {
						throw('[sprintf] huh?');
					}
					match[2] = field_list;
				}
				else {
					arg_names |= 2;
				}
				if (arg_names === 3) {
					throw('[sprintf] mixing positional and named placeholders is not (yet) supported');
				}
				parse_tree.push(match);
			}
			else {
				throw('[sprintf] huh?');
			}
			_fmt = _fmt.substring(match[0].length);
		}
		return parse_tree;
	};

	return str_format;
})();
function Format(f,a) { a.unshift(f); return sprintf.apply(null,a) };
;
;
function FloatToStr$_Float_(i) { return i.toString() }
function FloatToStr$_Float_Integer_(i,p) { return (p==99)?i.toString():i.toFixed(p) };
var Exception={
	$ClassName: "Exception",
	$Parent: TObject,
	$Init: function () { FMessage="" },
	Create: function (s,Msg) { s.FMessage=Msg; return s }
};
var EAssertionFailed={
	$ClassName: "EAssertionFailed",
	$Parent: Exception,
	$Init: Exception.$Init
};
function Delete(s,i,n) { var v=s.v; if ((i<=0)||(i>v.length)||(n<=0)) return; s.v=v.substr(0,i-1)+v.substr(i+n-1); };
function ClampInt(v,mi,ma) { return v<mi ? mi : v>ma ? ma : v };
function $W(e) { return e.ClassType?e:Exception.Create($New(Exception),e.constructor.name+", "+e.message) };
function $SIdx(s,i,z) {
	if (i<1) throw Exception.Create($New(Exception),"Lower bound exceeded! Index "+i.toString()+z);
	if (i>s.length) throw Exception.Create($New(Exception),"Upper bound exceeded! Index "+i.toString()+z);
	return s.charAt(i-1);
};
function $NewDyn(c,z) {
	if (c==null) throw Exception.Create($New(Exception),"ClassType is nil"+z);
	var i={ClassType:c};
	c.$Init(i);
	return i
};
function $New(c) { var i={ClassType:c}; c.$Init(i); return i };
function $Is(o,c) {
	if (o===null) return false;
	return $Inh(o.ClassType,c);
}
;
function $Inh(s,c) {
	if (s===null) return false;
	while ((s)&&(s!==c)) s=s.$Parent;
	return (s)?true:false;
}
;
function $Idx(i,l,h,z) {
	if (i<l) throw Exception.Create($New(Exception),"Lower bound exceeded! Index "+i.toString()+z);
	if (i>h) throw Exception.Create($New(Exception),"Upper bound exceeded! Index "+i.toString()+z);
	return i-l;
};
function $Event1(i,f) {
	var li=i,lf=f;
	return function(a) {
		return lf.call(li,li,a)
	}
};
function $Event0(i,f) {
	var li=i,lf=f;
	return function() {
		return lf.call(li,li)
	}
};
function $Event(i,f) {
	var li=i,lf=f;
	return function(){
		var arg=Array.prototype.slice.call(arguments);
		arg.unshift(li);
		return lf.apply(li,arg)
	}
};
function $Div(a,b) { var r=a/b; return (r>=0)?Math.floor(r):Math.ceil(r) };
function $DIdxW(a,i,v,z) {
	if (i<0) throw Exception.Create($New(Exception),"Lower bound exceeded! Index "+i.toString()+z);
	if (i>a.length) throw Exception.Create($New(Exception),"Upper bound exceeded! Index "+i.toString()+z);
	a[i]=v;
};
function $DIdxR(a,i,z) {
	if (i<0) throw Exception.Create($New(Exception),"Lower bound exceeded! Index "+i.toString()+z);
	if (i>a.length) throw Exception.Create($New(Exception),"Upper bound exceeded! Index "+i.toString()+z);
	return a[i];
};
function $CheckFunc(i,z) { if (i) return i; throw Exception.Create($New(Exception),"Function pointer is nil"+z); };
function $Check(i,z) { if (i) return i; throw Exception.Create($New(Exception),"Object not instantiated"+z); };
function $Assert(b,m,z) { if (!b) throw Exception.Create($New(EAssertionFailed),"Assertion failed"+z+((m=="")?"":" : ")+m); };
function $AsClass(s,c) {
	if ((s===null)||$Inh(s,c)) return s;
	throw Exception.Create($New(Exception),"Cannot cast class \""+s.$ClassName+"\" to class \""+c.$ClassName+"\"");
};
function $As(o,c) {
	if ((o===null)||$Is(o,c)) return o;
	throw Exception.Create($New(Exception),"Cannot cast instance of type \""+o.ClassType.$ClassName+"\" to class \""+c.$ClassName+"\"");
};
function $ArraySwapChk(a,i1,i2,z) {
	var n=a.length-1, t=a[$Idx(i1,0,n,z)];
	a[i1]=a[$Idx(i2,0,n,z)]
	a[i2]=t;
};
function $ArrayInsert(a,i,v,z) {
	if (i==a.length) a.push(v); else a.splice($Idx(i,0,a.length-1,z),0,v)
};
function WriteLn(value$2) {
   if (window.console) {
      window.console.log(value$2);
   }
};
function w3_setStyle(tagRef, aStyleName, aStyleValue) {
   if (tagRef) {
      tagRef.style[aStyleName] = aStyleValue;
   }
};
function w3_setProperty(tagRef$1, aPropName, aValue) {
   tagRef$1[aPropName] = aValue;
};
function w3_setElementParentByRef(aElement, aParent) {
   if (VarIsValidRef(aParent)) {
      if (VarIsValidRef(aElement)) {
         aParent.appendChild(aElement);
      } else {
         throw Exception.Create($New(Exception),"Failed to add element to parent, element is null");
      }
   }
};
function w3_setCssStyle(tagRef$2, aStyleName$1, aStyleValue$1) {
   tagRef$2.style.setProperty(aStyleName$1,aStyleValue$1);
};
function w3_setAttrib(tagRef$3, aAttribName, aValue$1) {
   if (tagRef$3) {
      tagRef$3.setAttribute(aAttribName,aValue$1);
   }
};
function w3_RequestAnimationFrame(aMethod) {
   var Result = undefined;
   if (!vRequestAnimFrame) {
      InitAnimationFrameShim();
   }
   Result = $CheckFunc(vRequestAnimFrame," in w3_RequestAnimationFrame [line: 524, column: 31, file: SmartCL.System]")(aMethod);
   return Result
};
function w3_RemoveEvent(a_tagRef, a_eventName, a_callback, a_useCapture) {
   if (a_eventName=="mousewheel") {
      a_eventName = "DOMMouseScroll";
   }
   a_tagRef.removeEventListener(a_eventName,a_callback,a_useCapture);
};
function w3_RemoveElementByRef(aElement$1, aParent$1) {
   if (aParent$1) {
      aParent$1.removeChild(aElement$1);
   }
};
function w3_RemoveClass(tagRef$4, aClassName) {
   var reg = undefined;
   if (w3_HasClass(tagRef$4,aClassName)) {
      
      reg = new RegExp("(\\s|^)" + aClassName + "(\\s|$)");
      (tagRef$4).className=(tagRef$4).className.replace(reg," ").replace('  ',' ').trim();
       }
};
function w3_RegisterBrowserAPI(aDriver) {
   vDriver = aDriver;
};
function w3_NameToUrlStr(aUrl) {
   return "url("+aUrl+")";
};
function w3_HasClass(tagRef$5, aClassName$1) {
   var Result = false;
   
    Result = ((tagRef$5).className.match(new RegExp("(\\s|^)"+aClassName$1+"(\\s|$)")))?true:false;
  return Result
};
function w3_GetUniqueObjId() {
   var Result = "";
   ++vUniqueNumber;
   Result = "OBJ"+vUniqueNumber.toString();
   return Result
};
function w3_GetUniqueNumber() {
   var Result = 0;
   ++vUniqueNumber;
   Result = vUniqueNumber;
   return Result
};
function w3_getStyleAsStr(tagRef$6, aStyleName$2) {
   var Result = "";
   var mData;
   mData = w3_getStyle(tagRef$6,aStyleName$2);
   if (TVariant.IsString(mData)) {
      Result = TVariant.AsString(mData);
   } else if (TVariant.IsNumber(mData)) {
      Result = TVariant.AsInteger(mData).toString();
   }
   return Result
};
function w3_getStyleAsInt(tagRef$7, aStyleName$3) {
   var Result = 0;
   var mData$1;
   mData$1 = w3_getStyle(tagRef$7,aStyleName$3);
   if (TVariant.IsNumber(mData$1)) {
      Result = parseInt(mData$1,10);
   } else if (TVariant.IsString(mData$1)) {
      Result = parseInt(mData$1,10);
   }
   if (isNaN(Result)) {
      Result = 0;
   }
   return Result
};
function w3_getStyleAsFloat(tagRef$8, aStyleName$4) {
   var Result = 0;
   var mData$2 = undefined;
   mData$2 = w3_getStyle(tagRef$8,aStyleName$4);
   if (VarIsValidRef(mData$2)) {
      try {
         if (TVariant.IsNumber(mData$2)) {
            Result = TVariant.AsFloat(mData$2);
            if (isNaN(Result)) {
               Result = 0;
            }
         } else if (TVariant.IsString(mData$2)) {
            Result = Number(mData$2);
            if (isNaN(Result)) {
               Result = 0;
            }
         }
      } catch ($e) {
         var e = $W($e);
         /* null */
      }
   }
   return Result
};
function w3_getStyle(tagRef$9, aStyleName$5) {
   var Result = undefined;
   var mObj = undefined;
   mObj = document.defaultView.getComputedStyle(tagRef$9,null);
   if (mObj) {
      Result = mObj.getPropertyValue(aStyleName$5);
   }
   return Result
};
function w3_getPropertyAsStr(tagRef$10, aPropName$1) {
   var Result = "";
   if (tagRef$10) {
      Result = ""+tagRef$10[aPropName$1];
   }
   return Result
};
function w3_getPropertyAsInt(tagRef$11, aPropName$2) {
   var Result = 0;
   if (tagRef$11) {
      Result = parseInt(tagRef$11[aPropName$2],10);
   }
   return Result
};
function w3_getPropertyAsBool(tagRef$12, aPropName$3) {
   var Result = false;
   if (tagRef$12) {
      Result = (tagRef$12[aPropName$3]?true:false);
   }
   return Result
};
function w3_getIsSafari() {
   var Result = false;
   
    if (navigator.userAgent.match(/Safari/i)) Result=true;
  return Result
};
function w3_getIsOpera() {
   var Result = false;
   
    if (navigator.userAgent.match(/Opera/i)) Result=true;
  return Result
};
function w3_getIsIPod() {
   var Result = false;
   
    if (navigator.userAgent.match(/iPod/i)) Result=true;
  return Result
};
function w3_getIsIPhone() {
   var Result = false;
   
    if (navigator.userAgent.match(/iPhone/i)) Result=true;
  return Result
};
function w3_getIsIPad() {
   var Result = false;
   
    if (navigator.userAgent.match(/iPad/i)) Result=true;
  return Result
};
function w3_getIsInternetExplorer() {
   var Result = false;
   
    if (navigator.userAgent.match(/MSIE/i)) Result=true;
  return Result
};
function w3_getIsFirefox() {
   var Result = false;
   
    if (navigator.userAgent.match(/Firefox/i)) Result=true;
  return Result
};
function w3_getIsChrome() {
   var Result = false;
   
    if (navigator.userAgent.match(/Chrome/i)) Result=true;
  return Result
};
function w3_getIsAndroid() {
   var Result = false;
   
    if (navigator.userAgent.match(/Android/i)) Result=true;
  return Result
};
function w3_getCssStyleAsInteger(tagRef$13, aStyleName$6) {
   var Result = 0;
   var Value$1;
   Value$1 = w3_getCssStyle(tagRef$13,aStyleName$6);
   if (TVariant.IsNumber(Value$1)) {
      Result = parseInt(Value$1,10);
   } else if (TVariant.IsString(Value$1)) {
      Result = parseInt(""+Value$1,10);
   }
   if (isNaN(Result)) {
      Result = 0;
   }
   return Result
};
function w3_getCssStyle(tagRef$14, aStyleName$7) {
   return tagRef$14.style.getPropertyValue(aStyleName$7);
};
function w3_getAttribAsStr(tagRef$15, aAttribName$1) {
   var Result = "";
   var mValue;
   mValue = tagRef$15.getAttribute(aAttribName$1,0);
   if (mValue) {
      Result = ""+mValue;
   }
   return Result
};
function w3_getAttrib(tagRef$16, aAttribName$2) {
   var Result = undefined;
   if (tagRef$16) {
      Result = tagRef$16.getAttribute(aAttribName$2);
   }
   return Result
};
function w3_DOMReady() {
   return document.readyState=="complete";
};
function w3_CSSPrefixDef(aCSS) {
   return "-"+$Check(BrowserAPI()," in w3_CSSPrefixDef [line: 411, column: 30, file: SmartCL.System]").FCSSToken+"-"+aCSS;
};
function w3_CSSPrefix(aCSS$1) {
   return $Check(BrowserAPI()," in w3_CSSPrefix [line: 406, column: 24, file: SmartCL.System]").FCSSToken+aCSS$1;
};
function w3_createHtmlElement(aTypeName) {
   return document.createElement(aTypeName);
};
function w3_bind2(obj_ref, event_name, callback) {
   obj_ref[event_name] = callback;
};
function w3_AddEvent(a_tagRef$1, a_eventName$1, a_callback$1, a_useCapture$1) {
   if (a_eventName$1=="mousewheel") {
      a_eventName$1 = "DOMMouseScroll";
   }
   a_tagRef$1.addEventListener(a_eventName$1,a_callback$1,a_useCapture$1);
};
function w3_AddClass(tagRef$17, aClassName$2) {
   if (!w3_HasClass(tagRef$17,aClassName$2)) {
      tagRef$17.className+=" "+aClassName$2;
   }
};
/// TW3CustomBrowserAPI = class (TObject)
///  [line: 51, column: 3, file: SmartCL.System]
var TW3CustomBrowserAPI = {
   $ClassName:"TW3CustomBrowserAPI",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FCSSAnimation = $.FCSSBackgroundColor = $.FCSSBackgroundImage = $.FCSSBackgroundPos = $.FCSSBackgroundSize = $.FCSSToken = $.FCSSTransform = "";
   }
   /// function TW3CustomBrowserAPI.DevicePixelRatio() : Float
   ///  [line: 418, column: 36, file: SmartCL.System]
   ,DevicePixelRatio:function() {
      var Result = 0;
      
   Result = window.devicePixelRatio || 1;
   return Result
   }
   ,Destroy:TObject.Destroy
};
/// TW3WebkitBrowserAPI = class (TW3CustomBrowserAPI)
///  [line: 99, column: 3, file: SmartCL.System]
var TW3WebkitBrowserAPI = {
   $ClassName:"TW3WebkitBrowserAPI",
   $Parent:TW3CustomBrowserAPI
   ,$Init:function ($) {
      TW3CustomBrowserAPI.$Init($);
   }
   /// constructor TW3WebkitBrowserAPI.Create()
   ///  [line: 459, column: 33, file: SmartCL.System]
   ,Create$3:function(Self) {
      $Check(Self," in TW3WebkitBrowserAPI.Create [line: 461, column: 3, file: SmartCL.System]").FCSSToken = "webkit";
      $Check(Self," in TW3WebkitBrowserAPI.Create [line: 462, column: 3, file: SmartCL.System]").FCSSBackgroundImage = "background-image";
      $Check(Self," in TW3WebkitBrowserAPI.Create [line: 463, column: 3, file: SmartCL.System]").FCSSBackgroundSize = "webkitbackgroundSize";
      $Check(Self," in TW3WebkitBrowserAPI.Create [line: 464, column: 3, file: SmartCL.System]").FCSSBackgroundPos = "webkitbackgroundPosition";
      $Check(Self," in TW3WebkitBrowserAPI.Create [line: 465, column: 3, file: SmartCL.System]").FCSSBackgroundColor = "webkitbackgroundColor";
      $Check(Self," in TW3WebkitBrowserAPI.Create [line: 466, column: 3, file: SmartCL.System]").FCSSTransform = "webkitTransform";
      $Check(Self," in TW3WebkitBrowserAPI.Create [line: 467, column: 3, file: SmartCL.System]").FCSSAnimation = "webkitAnimation";
      return Self
   }
   ,Destroy:TObject.Destroy
};
/// TW3OwnedObject = class (TObject)
///  [line: 40, column: 3, file: SmartCL.System]
var TW3OwnedObject = {
   $ClassName:"TW3OwnedObject",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FOwner = null;
   }
   /// function TW3OwnedObject.AcceptParent(aObject: TObject) : Boolean
   ///  [line: 718, column: 25, file: SmartCL.System]
   ,AcceptParent:function(Self, aObject) {
      return true;
   }
   /// constructor TW3OwnedObject.Create(AOwner: TObject)
   ///  [line: 707, column: 28, file: SmartCL.System]
   ,Create$4:function(Self, AOwner) {
      TObject.Create(Self);
      if (TW3OwnedObject.AcceptParent$($Check(Self," in TW3OwnedObject.Create [line: 711, column: 6, file: SmartCL.System]"),AOwner)) {
         $Check(Self," in TW3OwnedObject.Create [line: 712, column: 5, file: SmartCL.System]").FOwner = AOwner;
      } else {
         throw EW3Exception.CreateFmt($New(EW3OwnedObject),$R[0],["constructor", TObject.ClassName($Check(Self," in TW3OwnedObject.Create [line: 714, column: 68, file: SmartCL.System]").ClassType), "Unsuitable owner object-type error"]);
      }
      return Self
   }
   ,Destroy:TObject.Destroy
   ,AcceptParent$:function($){return $.ClassType.AcceptParent.apply($.ClassType, arguments)}
   ,Create$4$:function($){return $.ClassType.Create$4.apply($.ClassType, arguments)}
};
/// TW3OperaBrowserAPI = class (TW3CustomBrowserAPI)
///  [line: 110, column: 3, file: SmartCL.System]
var TW3OperaBrowserAPI = {
   $ClassName:"TW3OperaBrowserAPI",
   $Parent:TW3CustomBrowserAPI
   ,$Init:function ($) {
      TW3CustomBrowserAPI.$Init($);
   }
   /// constructor TW3OperaBrowserAPI.Create()
   ///  [line: 444, column: 32, file: SmartCL.System]
   ,Create$5:function(Self) {
      $Check(Self," in TW3OperaBrowserAPI.Create [line: 446, column: 3, file: SmartCL.System]").FCSSToken = "O";
      $Check(Self," in TW3OperaBrowserAPI.Create [line: 447, column: 3, file: SmartCL.System]").FCSSBackgroundImage = "OBackgroundImage";
      $Check(Self," in TW3OperaBrowserAPI.Create [line: 448, column: 3, file: SmartCL.System]").FCSSBackgroundSize = "OBackgroundSize";
      $Check(Self," in TW3OperaBrowserAPI.Create [line: 449, column: 3, file: SmartCL.System]").FCSSBackgroundPos = "OBackgroundPosition";
      $Check(Self," in TW3OperaBrowserAPI.Create [line: 450, column: 3, file: SmartCL.System]").FCSSBackgroundColor = "backgroundColor";
      $Check(Self," in TW3OperaBrowserAPI.Create [line: 451, column: 3, file: SmartCL.System]").FCSSTransform = "OTransform";
      $Check(Self," in TW3OperaBrowserAPI.Create [line: 452, column: 3, file: SmartCL.System]").FCSSAnimation = "OAnimation";
      return Self
   }
   ,Destroy:TObject.Destroy
};
/// TW3IEBrowserAPI = class (TW3CustomBrowserAPI)
///  [line: 115, column: 3, file: SmartCL.System]
var TW3IEBrowserAPI = {
   $ClassName:"TW3IEBrowserAPI",
   $Parent:TW3CustomBrowserAPI
   ,$Init:function ($) {
      TW3CustomBrowserAPI.$Init($);
   }
   /// constructor TW3IEBrowserAPI.Create()
   ///  [line: 429, column: 29, file: SmartCL.System]
   ,Create$6:function(Self) {
      $Check(Self," in TW3IEBrowserAPI.Create [line: 431, column: 3, file: SmartCL.System]").FCSSToken = "ms";
      $Check(Self," in TW3IEBrowserAPI.Create [line: 432, column: 3, file: SmartCL.System]").FCSSBackgroundImage = "msBackgroundImage";
      $Check(Self," in TW3IEBrowserAPI.Create [line: 433, column: 3, file: SmartCL.System]").FCSSBackgroundSize = "msBackgroundSize";
      $Check(Self," in TW3IEBrowserAPI.Create [line: 434, column: 3, file: SmartCL.System]").FCSSBackgroundPos = "msBackgroundPosition";
      $Check(Self," in TW3IEBrowserAPI.Create [line: 435, column: 3, file: SmartCL.System]").FCSSBackgroundColor = "backgroundColor";
      $Check(Self," in TW3IEBrowserAPI.Create [line: 436, column: 3, file: SmartCL.System]").FCSSTransform = "msTransform";
      $Check(Self," in TW3IEBrowserAPI.Create [line: 437, column: 3, file: SmartCL.System]").FCSSAnimation = "msAnimation";
      return Self
   }
   ,Destroy:TObject.Destroy
};
/// TW3FirefoxBrowserAPI = class (TW3CustomBrowserAPI)
///  [line: 105, column: 3, file: SmartCL.System]
var TW3FirefoxBrowserAPI = {
   $ClassName:"TW3FirefoxBrowserAPI",
   $Parent:TW3CustomBrowserAPI
   ,$Init:function ($) {
      TW3CustomBrowserAPI.$Init($);
   }
   /// constructor TW3FirefoxBrowserAPI.Create()
   ///  [line: 474, column: 34, file: SmartCL.System]
   ,Create$7:function(Self) {
      $Check(Self," in TW3FirefoxBrowserAPI.Create [line: 476, column: 3, file: SmartCL.System]").FCSSToken = "Moz";
      $Check(Self," in TW3FirefoxBrowserAPI.Create [line: 477, column: 3, file: SmartCL.System]").FCSSBackgroundImage = "backgroundImage";
      $Check(Self," in TW3FirefoxBrowserAPI.Create [line: 478, column: 3, file: SmartCL.System]").FCSSBackgroundSize = "backgroundSize";
      $Check(Self," in TW3FirefoxBrowserAPI.Create [line: 479, column: 3, file: SmartCL.System]").FCSSBackgroundPos = "backgroundPosition";
      $Check(Self," in TW3FirefoxBrowserAPI.Create [line: 480, column: 3, file: SmartCL.System]").FCSSBackgroundColor = "backgroundColor";
      $Check(Self," in TW3FirefoxBrowserAPI.Create [line: 481, column: 3, file: SmartCL.System]").FCSSTransform = "MozTransform";
      $Check(Self," in TW3FirefoxBrowserAPI.Create [line: 482, column: 3, file: SmartCL.System]").FCSSAnimation = "MozAnimation";
      return Self
   }
   ,Destroy:TObject.Destroy
};
/// TW3BrowserVendor enumeration
///  [line: 244, column: 3, file: SmartCL.System]
var TW3BrowserVendor = [ "bvUnknown", "bviOS", "bvAndroid", "bvChrome", "bvSafari", "bvFirefox", "bvOpera", "bvIE" ];
/// EW3Exception = class (Exception)
///  [line: 31, column: 3, file: SmartCL.System]
var EW3Exception = {
   $ClassName:"EW3Exception",
   $Parent:Exception
   ,$Init:function ($) {
      Exception.$Init($);
   }
   /// constructor EW3Exception.CreateFmt(aText: String; const aValues: array of const)
   ///  [line: 1050, column: 26, file: SmartCL.System]
   ,CreateFmt:function(Self, aText, aValues) {
      Exception.Create(Self,Format(aText,aValues.slice(0)));
      return Self
   }
   ,Destroy:Exception.Destroy
};
/// EW3OwnedObject = class (EW3Exception)
///  [line: 37, column: 3, file: SmartCL.System]
var EW3OwnedObject = {
   $ClassName:"EW3OwnedObject",
   $Parent:EW3Exception
   ,$Init:function ($) {
      EW3Exception.$Init($);
   }
   ,Destroy:Exception.Destroy
};
function BrowserAPI() {
   var Result = null;
   if (vDriver===null) {
      InternalInitVendorInfo();
   }
   Result = vDriver;
   return Result
};
function InternalInitVendorInfo() {
   if (w3_getIsAndroid()) {
      vVendor = 2;
   } else if (w3_getIsSafari()) {
      vVendor = 4;
   } else if (w3_getIsFirefox()) {
      vVendor = 5;
   } else if (w3_getIsChrome()) {
      vVendor = 3;
   } else if (w3_getIsInternetExplorer()) {
      vVendor = 7;
   } else if (w3_getIsOpera()) {
      vVendor = 6;
   }
   if (!vVendor) {
      if ((w3_getIsIPhone()||w3_getIsIPad())||w3_getIsIPod()) {
         vVendor = 1;
      }
   }
   switch (vVendor) {
      case 1 :
      case 4 :
      case 3 :
      case 2 :
         w3_RegisterBrowserAPI(TW3WebkitBrowserAPI.Create$3($New(TW3WebkitBrowserAPI)));
         break;
      case 5 :
         w3_RegisterBrowserAPI(TW3FirefoxBrowserAPI.Create$7($New(TW3FirefoxBrowserAPI)));
         break;
      case 7 :
         w3_RegisterBrowserAPI(TW3IEBrowserAPI.Create$6($New(TW3IEBrowserAPI)));
         break;
      case 6 :
         w3_RegisterBrowserAPI(TW3OperaBrowserAPI.Create$5($New(TW3OperaBrowserAPI)));
         break;
      default :
         w3_RegisterBrowserAPI(TW3FirefoxBrowserAPI.Create$7($New(TW3FirefoxBrowserAPI)))   }
};
function InitAnimationFrameShim() {
   
    vRequestAnimFrame = (function(){
      return  window.requestAnimationFrame       ||
              window.webkitRequestAnimationFrame ||
              window.mozRequestAnimationFrame    ||
              window.msRequestAnimationFrame     ||
              function( callback ){
                return window.setTimeout(callback, 1000 / 60);
              };
    })();
    vCancelAnimFrame = (function(){
      return  window.cancelAnimationFrame       ||
              window.webkitCancelAnimationFrame ||
              window.mozCancelAnimationFrame    ||
              window.msCancelAnimationFrame     ||
              function( handle ){
                window.clearTimeout(handle);
              };
    })();
  };
function VarIsValidRef(aRef) {
   var Result = false;
   
    Result = !((aRef == null) || (aRef == undefined));
  return Result
};
/// TVariant = class (TObject)
///  [line: 220, column: 3, file: System.Types]
var TVariant = {
   $ClassName:"TVariant",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
   }
   /// function TVariant.AsFloat(const aValue: Variant) : Float
   ///  [line: 1236, column: 25, file: System.Types]
   ,AsFloat:function(aValue$2) {
      var Result = 0;
      if (VarIsValidRef(aValue$2)) {
         Result = Number(aValue$2);
      }
      return Result
   }
   /// function TVariant.AsInteger(const aValue: Variant) : Integer
   ///  [line: 1224, column: 25, file: System.Types]
   ,AsInteger:function(aValue$3) {
      var Result = 0;
      if (VarIsValidRef(aValue$3)) {
         Result = parseInt(aValue$3,10);
      }
      return Result
   }
   /// function TVariant.AsObject(const aValue: Variant) : TObject
   ///  [line: 1242, column: 25, file: System.Types]
   ,AsObject:function(aValue$4) {
      var Result = null;
      if (VarIsValidRef(aValue$4)) {
         
      Result = aValue$4;
          } else {
         Result = null;
      }
      return Result
   }
   /// function TVariant.AsString(const aValue: Variant) : String
   ///  [line: 1230, column: 25, file: System.Types]
   ,AsString:function(aValue$5) {
      var Result = "";
      if (VarIsValidRef(aValue$5)) {
         Result = ""+aValue$5;
      }
      return Result
   }
   /// function TVariant.IsNull(const aValue: Variant) : Boolean
   ///  [line: 1274, column: 25, file: System.Types]
   ,IsNull:function(aValue$6) {
      return (aValue$6===null);
   }
   /// function TVariant.IsNumber(const aValue: Variant) : Boolean
   ///  [line: 1288, column: 25, file: System.Types]
   ,IsNumber:function(aValue$7) {
      var Result = false;
      
    if (aValue$7 == null) return false;
    if (aValue$7 == undefined) return false;
    if (typeof(aValue$7) === "number") return true;
  return Result
   }
   /// function TVariant.IsString(const aValue: Variant) : Boolean
   ///  [line: 1279, column: 25, file: System.Types]
   ,IsString:function(aValue$8) {
      var Result = false;
      
    if (aValue$8 == null) return false;
    if (aValue$8 == undefined) return false;
    if (typeof(aValue$8) === "string") return true;
  return Result
   }
   ,Destroy:TObject.Destroy
};
/// TRectF = record
///  [line: 155, column: 3, file: System.Types]
function Copy$TRectF(s,d) {
   d.Bottom=s.Bottom;
   d.Left=s.Left;
   d.Right=s.Right;
   d.Top=s.Top;
   return d;
}
function Clone$TRectF($) {
   return {
      Bottom:$.Bottom,
      Left:$.Left,
      Right:$.Right,
      Top:$.Top
   }
}
/// function TRectF.CreateBounded(x1: Float; y1: Float; x2: Float; y2: Float) : TRectF
///  [line: 740, column: 23, file: System.Types]
function CreateBounded(x1, y1, x2, y2) {
   var Result = {Bottom:0,Left:0,Right:0,Top:0};
   if (x1<x2) {
      Result.Left = x1;
      Result.Right = x2;
   } else {
      Result.Left = x2;
      Result.Right = x1;
   }
   if (y1<y2) {
      Result.Top = y1;
      Result.Bottom = y2;
   } else {
      Result.Top = y2;
      Result.Bottom = y1;
   }
   return Result
}
/// function TRectF.Height(var Self: TRectF) : Float
///  [line: 864, column: 17, file: System.Types]
function TRectF$Height(Self$2) {
   return Self$2.Bottom-Self$2.Top;
}
/// function TRectF.Width(var Self: TRectF) : Float
///  [line: 859, column: 17, file: System.Types]
function TRectF$Width(Self$3) {
   return Self$3.Right-Self$3.Left;
}
/// TRect = record
///  [line: 119, column: 3, file: System.Types]
function Copy$TRect(s,d) {
   d.Bottom$1=s.Bottom$1;
   d.Left$1=s.Left$1;
   d.Right$1=s.Right$1;
   d.Top$1=s.Top$1;
   return d;
}
function Clone$TRect($) {
   return {
      Bottom$1:$.Bottom$1,
      Left$1:$.Left$1,
      Right$1:$.Right$1,
      Top$1:$.Top$1
   }
}
/// function TRect.ContainsPos(var Self: TRect; const aLeft: Integer; const aTop: Integer) : Boolean
///  [line: 665, column: 16, file: System.Types]
function TRect$ContainsPos$1(Self$4, aLeft, aTop) {
   return (((aLeft>=Self$4.Left$1)&&(aLeft<=Self$4.Right$1))&&(aTop>=Self$4.Top$1))&&(aTop<=Self$4.Bottom$1);
}
/// function TRect.Height(var Self: TRect) : Integer
///  [line: 519, column: 16, file: System.Types]
function TRect$Height$1(Self$5) {
   return Self$5.Bottom$1-Self$5.Top$1;
}
/// function TRect.Width(var Self: TRect) : Integer
///  [line: 514, column: 16, file: System.Types]
function TRect$Width$1(Self$6) {
   return Self$6.Right$1-Self$6.Left$1;
}
/// TPointF = record
///  [line: 78, column: 3, file: System.Types]
function Copy$TPointF(s,d) {
   d.X=s.X;
   d.Y=s.Y;
   return d;
}
function Clone$TPointF($) {
   return {
      X:$.X,
      Y:$.Y
   }
}
/// TPoint = record
///  [line: 43, column: 3, file: System.Types]
function Copy$TPoint(s,d) {
   d.X$1=s.X$1;
   d.Y$1=s.Y$1;
   return d;
}
function Clone$TPoint($) {
   return {
      X$1:$.X$1,
      Y$1:$.Y$1
   }
}
/// function TPoint.Create(const aCol: Integer; const aRow: Integer) : TPoint
///  [line: 250, column: 23, file: System.Types]
function Create$13(aCol, aRow) {
   var Result = {X$1:0,Y$1:0};
   Result.X$1 = aCol;
   Result.Y$1 = aRow;
   return Result
}
/// TInteger = class (TObject)
///  [line: 189, column: 3, file: System.Types]
var TInteger = {
   $ClassName:"TInteger",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
   }
   /// function TInteger.Diff(const Primary: Integer; const Secondary: Integer) : Integer
   ///  [line: 1129, column: 25, file: System.Types]
   ,Diff:function(Primary, Secondary) {
      var Result = 0;
      if (Primary!=Secondary) {
         if (Primary>Secondary) {
            Result = Primary-Secondary;
         } else {
            Result = Secondary-Primary;
         }
         if (Result<0) {
            Result = (Result-1)^(-1);
         }
      } else {
         Result = 0;
      }
      return Result
   }
   /// function TInteger.EnsureRange(const aValue: Integer; const aMin: Integer; const aMax: Integer) : Integer
   ///  [line: 1083, column: 25, file: System.Types]
   ,EnsureRange:function(aValue$9, aMin, aMax) {
      return ClampInt(aValue$9,aMin,aMax);
   }
   /// function TInteger.PercentOfValue(const Value: Integer; const Total: Integer) : Integer
   ///  [line: 1154, column: 25, file: System.Types]
   ,PercentOfValue:function(Value$5, Total$2) {
      var Result = 0;
      if (Value$5<=Total$2) {
         Result = Trunc((Value$5/Total$2)*100);
      } else {
         Result = 0;
      }
      return Result
   }
   /// function TInteger.ToPxStr(const aValue: Integer) : String
   ///  [line: 1061, column: 25, file: System.Types]
   ,ToPxStr:function(aValue$10) {
      return aValue$10.toString()+"px";
   }
   /// function TInteger.WrapRange(const aValue: Integer; const aLowRange: Integer; const aHighRange: Integer) : Integer
   ///  [line: 1097, column: 25, file: System.Types]
   ,WrapRange:function(aValue$11, aLowRange, aHighRange) {
      var Result = 0;
      if (aValue$11>aHighRange) {
         Result = aLowRange+TInteger.Diff(aHighRange,(aValue$11-1));
         if (Result>aHighRange) {
            Result = TInteger.WrapRange(Result,aLowRange,aHighRange);
         }
      } else if (aValue$11<aLowRange) {
         Result = aHighRange-TInteger.Diff(aLowRange,(aValue$11+1));
         if (Result<aLowRange) {
            Result = TInteger.WrapRange(Result,aLowRange,aHighRange);
         }
      } else {
         Result = aValue$11;
      }
      return Result
   }
   ,Destroy:TObject.Destroy
};
/// TExposure enumeration
///  [line: 116, column: 3, file: System.Types]
var TExposure = [ "esVisible", "esPartly", "esNone" ];
function OffsetPoint(a, b$1) {
   var Result = {X$1:0,Y$1:0};
   Result.X$1 = a.X$1+b$1.X$1;
   Result.Y$1 = a.Y$1+b$1.Y$1;
   return Result
};
function OffsetPoint$1(a$40, b$2) {
   var Result = {X$1:0,Y$1:0};
   Result.X$1 = a$40.X$1+b$2;
   Result.Y$1 = a$40.Y$1+b$2;
   return Result
};
function OffsetPoint$2(a$41, b$3) {
   var Result = {X:0,Y:0};
   Result.X = a$41.X+b$3.X;
   Result.Y = a$41.Y+b$3.Y;
   return Result
};
function OffsetPoint$3(a$42, b$4) {
   var Result = {X:0,Y:0};
   Result.X = a$42.X+b$4;
   Result.Y = a$42.Y+b$4;
   return Result
};
function OffsetPoint$4(a$43, b$5) {
   var Result = {X:0,Y:0};
   Result.X = a$43.X+b$5;
   Result.Y = a$43.Y+b$5;
   return Result
};
function MinusPoint(a$44, b$6) {
   var Result = {X$1:0,Y$1:0};
   Result.X$1 = a$44.X$1-b$6.X$1;
   Result.Y$1 = a$44.Y$1-b$6.Y$1;
   return Result
};
function MinusPoint$1(a$45, b$7) {
   var Result = {X$1:0,Y$1:0};
   Result.X$1 = a$45.X$1-b$7;
   Result.Y$1 = a$45.Y$1-b$7;
   return Result
};
function MinusPoint$2(a$46, b$8) {
   var Result = {X:0,Y:0};
   Result.X = a$46.X-b$8.X;
   Result.Y = a$46.Y-b$8.Y;
   return Result
};
function MinusPoint$3(a$47, b$9) {
   var Result = {X:0,Y:0};
   Result.X = a$47.X-b$9;
   Result.Y = a$47.Y-b$9;
   return Result
};
function MinusPoint$4(a$48, b$10) {
   var Result = {X:0,Y:0};
   Result.X = a$48.X-b$10;
   Result.Y = a$48.Y-b$10;
   return Result
};
function ExpandPoint(a$49, b$11) {
   var Result = {X$1:0,Y$1:0};
   Result.X$1 = Math.round(a$49.X$1*b$11.X$1);
   Result.Y$1 = Math.round(a$49.Y$1*b$11.Y$1);
   return Result
};
function ExpandPoint$1(a$50, b$12) {
   var Result = {X$1:0,Y$1:0};
   Result.X$1 = Math.round(a$50.X$1*b$12);
   Result.Y$1 = Math.round(a$50.Y$1*b$12);
   return Result
};
function ExpandPoint$2(a$51, b$13) {
   var Result = {X$1:0,Y$1:0};
   Result.X$1 = Math.round(a$51.X$1*b$13);
   Result.Y$1 = Math.round(a$51.Y$1*b$13);
   return Result
};
function ExpandPoint$3(a$52, b$14) {
   var Result = {X:0,Y:0};
   Result.X = a$52.X*b$14.X;
   Result.Y = a$52.Y*b$14.Y;
   return Result
};
function ExpandPoint$4(a$53, b$15) {
   var Result = {X:0,Y:0};
   Result.X = a$53.X*b$15;
   Result.Y = a$53.Y*b$15;
   return Result
};
function ExpandPoint$5(a$54, b$16) {
   var Result = {X:0,Y:0};
   Result.X = a$54.X*b$16;
   Result.Y = a$54.Y*b$16;
   return Result
};
/// TW3DisplayViewArangeType enumeration
///  [line: 36, column: 3, file: SmartCL.Application]
var TW3DisplayViewArangeType = [ "dvaSizeToView", "dvaVStack", "dvaHStack" ];
/// TW3TagObj = class (TObject)
///  [line: 118, column: 3, file: SmartCL.Components]
var TW3TagObj = {
   $ClassName:"TW3TagObj",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FHandle = undefined;
      $.FObjReady = false;
      $.FOwner$1 = undefined;
      $.FTagId = "";
      $.FUpdating = 0;
   }
   /// procedure TW3TagObj.AfterUpdate()
   ///  [line: 942, column: 21, file: SmartCL.Components]
   ,AfterUpdate:function(Self) {
      /* null */
   }
   /// procedure TW3TagObj.BeginUpdate()
   ///  [line: 927, column: 21, file: SmartCL.Components]
   ,BeginUpdate:function(Self) {
      ++$Check(Self," in TW3TagObj.BeginUpdate [line: 929, column: 7, file: SmartCL.Components]").FUpdating;
   }
   /// constructor TW3TagObj.Create()
   ///  [line: 867, column: 23, file: SmartCL.Components]
   ,Create$17:function(Self) {
      TObject.Create(Self);
      $Check(Self," in TW3TagObj.Create [line: 870, column: 3, file: SmartCL.Components]").FObjReady = false;
      try {
         $Check(Self," in TW3TagObj.Create [line: 873, column: 5, file: SmartCL.Components]").FTagId = TW3TagObj.MakeElementTagId$($Check(Self," in TW3TagObj.Create [line: 873, column: 15, file: SmartCL.Components]"));
         $Check(Self," in TW3TagObj.Create [line: 874, column: 5, file: SmartCL.Components]").FHandle = TW3TagObj.MakeElementTagObj$($Check(Self," in TW3TagObj.Create [line: 874, column: 16, file: SmartCL.Components]"));
      } catch ($e) {
         var e$1 = $W($e);
         EW3TagObj.RaiseCntErrMethod("TW3TagObj.Create",Self,$Check(e$1," in TW3TagObj.Create [line: 877, column: 58, file: SmartCL.Components]").FMessage)      }
      if (TVariant.AsObject($Check(Self," in TW3TagObj.Create [line: 881, column: 24, file: SmartCL.Components]").FHandle)!==TVariant.AsObject(document.body)) {
         if ($Check(Self," in TW3TagObj.Create [line: 884, column: 15, file: SmartCL.Components]").FTagId.length>0) {
            w3_setAttrib($Check(Self," in TW3TagObj.Create [line: 885, column: 20, file: SmartCL.Components]").FHandle,"id",$Check(Self," in TW3TagObj.Create [line: 885, column: 35, file: SmartCL.Components]").FTagId);
         }
      }
      TW3TagObj.StyleTagObject$($Check(Self," in TW3TagObj.Create [line: 889, column: 3, file: SmartCL.Components]"));
      TW3TagObj.BeginUpdate(Self);
      try {
         TW3TagObj.InitializeObject$($Check(Self," in TW3TagObj.Create [line: 894, column: 5, file: SmartCL.Components]"));
      } finally {
         TW3TagObj.EndUpdate($Check(Self," in TW3TagObj.Create [line: 896, column: 5, file: SmartCL.Components]"));
      }
      $Check(Self," in TW3TagObj.Create [line: 899, column: 3, file: SmartCL.Components]").FObjReady = true;
      return Self
   }
   /// destructor TW3TagObj.Destroy()
   ///  [line: 902, column: 22, file: SmartCL.Components]
   ,Destroy:function(Self) {
      if ($Check(Self," in TW3TagObj.Destroy [line: 907, column: 7, file: SmartCL.Components]").FHandle) {
         try {
            TW3TagObj.UnHookEvents($Check(Self," in TW3TagObj.Destroy [line: 910, column: 7, file: SmartCL.Components]"));
            TW3TagObj.RemoveFrom(Self);
         } finally {
            TW3TagObj.FinalizeObject$($Check(Self," in TW3TagObj.Destroy [line: 913, column: 7, file: SmartCL.Components]"));
            $Check(Self," in TW3TagObj.Destroy [line: 914, column: 7, file: SmartCL.Components]").FTagId = "";
            $Check(Self," in TW3TagObj.Destroy [line: 915, column: 7, file: SmartCL.Components]").FHandle = null;
         }
      }
      TObject.Destroy(Self);
   }
   /// procedure TW3TagObj.EndUpdate()
   ///  [line: 932, column: 21, file: SmartCL.Components]
   ,EndUpdate:function(Self) {
      if ($Check(Self," in TW3TagObj.EndUpdate [line: 934, column: 6, file: SmartCL.Components]").FUpdating>0) {
         --$Check(Self," in TW3TagObj.EndUpdate [line: 936, column: 9, file: SmartCL.Components]").FUpdating;
         if (!$Check(Self," in TW3TagObj.EndUpdate [line: 937, column: 8, file: SmartCL.Components]").FUpdating) {
            TW3TagObj.AfterUpdate$($Check(Self," in TW3TagObj.EndUpdate [line: 938, column: 7, file: SmartCL.Components]"));
         }
      }
   }
   /// procedure TW3TagObj.FinalizeObject()
   ///  [line: 1010, column: 21, file: SmartCL.Components]
   ,FinalizeObject:function(Self) {
      /* null */
   }
   /// function TW3TagObj.GetInnerHTML() : String
   ///  [line: 970, column: 20, file: SmartCL.Components]
   ,GetInnerHTML:function(Self) {
      var Result = "";
      if ($Check(Self," in TW3TagObj.GetInnerHTML [line: 972, column: 7, file: SmartCL.Components]").FHandle) {
         Result = ""+$Check(Self," in TW3TagObj.GetInnerHTML [line: 973, column: 15, file: SmartCL.Components]").FHandle.innerHTML;
      }
      return Result
   }
   /// function TW3TagObj.GetInnerText() : String
   ///  [line: 982, column: 20, file: SmartCL.Components]
   ,GetInnerText:function(Self) {
      var Result = "";
      if ($Check(Self," in TW3TagObj.GetInnerText [line: 984, column: 7, file: SmartCL.Components]").FHandle) {
         Result = ""+$Check(Self," in TW3TagObj.GetInnerText [line: 985, column: 15, file: SmartCL.Components]").FHandle.innerText;
      }
      return Result
   }
   /// function TW3TagObj.GetUpdating() : Boolean
   ///  [line: 922, column: 20, file: SmartCL.Components]
   ,GetUpdating:function(Self) {
      return $Check(Self," in TW3TagObj.GetUpdating [line: 924, column: 13, file: SmartCL.Components]").FUpdating>0;
   }
   /// procedure TW3TagObj.InitializeObject()
   ///  [line: 1006, column: 21, file: SmartCL.Components]
   ,InitializeObject:function(Self) {
      /* null */
   }
   /// procedure TW3TagObj.InsertInto(const OwnerHandle: THandle)
   ///  [line: 1052, column: 21, file: SmartCL.Components]
   ,InsertInto:function(Self, OwnerHandle) {
      if (!OwnerHandle) {
         EW3TagObj.RaiseCntErrMethod("TW3TagObj.InsertInto",Self,$R[9]);
      }
      if (!$Check(Self," in TW3TagObj.InsertInto [line: 1059, column: 11, file: SmartCL.Components]").FHandle) {
         EW3TagObj.RaiseCntErrMethod("TW3TagObj.InsertInto",Self,$R[2]);
      }
      try {
         if ($Check(Self," in TW3TagObj.InsertInto [line: 1063, column: 9, file: SmartCL.Components]").FOwner$1) {
            TW3TagObj.RemoveFrom(Self);
         }
         w3_setElementParentByRef($Check(Self," in TW3TagObj.InsertInto [line: 1066, column: 30, file: SmartCL.Components]").FHandle,OwnerHandle);
         $Check(Self," in TW3TagObj.InsertInto [line: 1068, column: 5, file: SmartCL.Components]").FOwner$1 = OwnerHandle;
      } catch ($e) {
         var e$2 = $W($e);
         EW3TagObj.RaiseCntErrMethod("TW3TagObj.InsertInto",Self,$Check(e$2," in TW3TagObj.InsertInto [line: 1071, column: 60, file: SmartCL.Components]").FMessage)      }
   }
   /// function TW3TagObj.MakeElementTagId() : String
   ///  [line: 1036, column: 20, file: SmartCL.Components]
   ,MakeElementTagId:function(Self) {
      return TObject.ClassName($Check(Self," in TW3TagObj.MakeElementTagId [line: 1039, column: 13, file: SmartCL.Components]").ClassType)+w3_GetUniqueNumber().toString();
   }
   /// function TW3TagObj.MakeElementTagObj() : THandle
   ///  [line: 1042, column: 20, file: SmartCL.Components]
   ,MakeElementTagObj:function(Self) {
      return w3_createHtmlElement("div");
   }
   /// procedure TW3TagObj.RemoveFrom()
   ///  [line: 1075, column: 21, file: SmartCL.Components]
   ,RemoveFrom:function(Self) {
      if (!$Check(Self," in TW3TagObj.RemoveFrom [line: 1078, column: 11, file: SmartCL.Components]").FOwner$1) {
         EW3TagObj.RaiseCntErrMethod("TW3TagObj.RemoveFrom",Self,$R[9]);
      }
      if (!$Check(Self," in TW3TagObj.RemoveFrom [line: 1082, column: 11, file: SmartCL.Components]").FHandle) {
         EW3TagObj.RaiseCntErrMethod("TW3TagObj.RemoveFrom",Self,$R[2]);
      }
      try {
         w3_RemoveElementByRef($Check(Self," in TW3TagObj.RemoveFrom [line: 1086, column: 27, file: SmartCL.Components]").FHandle,$Check(Self," in TW3TagObj.RemoveFrom [line: 1086, column: 36, file: SmartCL.Components]").FOwner$1);
         $Check(Self," in TW3TagObj.RemoveFrom [line: 1088, column: 5, file: SmartCL.Components]").FOwner$1 = undefined;
      } catch ($e) {
         var e$3 = $W($e);
         EW3TagObj.RaiseCntErrMethod("TW3TagObj.RemoveFrom",Self,$Check(e$3," in TW3TagObj.RemoveFrom [line: 1091, column: 60, file: SmartCL.Components]").FMessage)      }
   }
   /// procedure TW3TagObj.SetInnerHTML(aValue: String)
   ///  [line: 976, column: 21, file: SmartCL.Components]
   ,SetInnerHTML:function(Self, aValue$12) {
      if ($Check(Self," in TW3TagObj.SetInnerHTML [line: 978, column: 7, file: SmartCL.Components]").FHandle) {
         $Check(Self," in TW3TagObj.SetInnerHTML [line: 979, column: 5, file: SmartCL.Components]").FHandle.innerHTML = aValue$12;
      }
   }
   /// procedure TW3TagObj.SetInnerText(aValue: String)
   ///  [line: 988, column: 21, file: SmartCL.Components]
   ,SetInnerText:function(Self, aValue$13) {
      if ($Check(Self," in TW3TagObj.SetInnerText [line: 990, column: 7, file: SmartCL.Components]").FHandle) {
         $Check(Self," in TW3TagObj.SetInnerText [line: 991, column: 5, file: SmartCL.Components]").FHandle.innerText = aValue$13;
      }
   }
   /// procedure TW3TagObj.StyleTagObject()
   ///  [line: 1014, column: 21, file: SmartCL.Components]
   ,StyleTagObject:function(Self) {
      if ($Check(Self," in TW3TagObj.StyleTagObject [line: 1023, column: 7, file: SmartCL.Components]").FHandle) {
         $Check(Self," in TW3TagObj.StyleTagObject [line: 1025, column: 5, file: SmartCL.Components]").FHandle.style["visibility"] = "hidden";
         $Check(Self," in TW3TagObj.StyleTagObject [line: 1026, column: 5, file: SmartCL.Components]").FHandle.style["display"] = "none";
         $Check(Self," in TW3TagObj.StyleTagObject [line: 1028, column: 5, file: SmartCL.Components]").FHandle.style["position"] = "absolute";
         $Check(Self," in TW3TagObj.StyleTagObject [line: 1029, column: 5, file: SmartCL.Components]").FHandle.style["overflow"] = "hidden";
         $Check(Self," in TW3TagObj.StyleTagObject [line: 1031, column: 5, file: SmartCL.Components]").FHandle.style["left"] = "0px";
         $Check(Self," in TW3TagObj.StyleTagObject [line: 1032, column: 5, file: SmartCL.Components]").FHandle.style["top"] = "0px";
      }
   }
   /// procedure TW3TagObj.UnHookEvents()
   ///  [line: 946, column: 21, file: SmartCL.Components]
   ,UnHookEvents:function(Self) {
      if ($Check(Self," in TW3TagObj.UnHookEvents [line: 948, column: 7, file: SmartCL.Components]").FHandle) {
         $Check(Self," in TW3TagObj.UnHookEvents [line: 950, column: 5, file: SmartCL.Components]").FHandle.onresize = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 951, column: 5, file: SmartCL.Components]").FHandle.onselectstart = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 952, column: 5, file: SmartCL.Components]").FHandle.onfocus = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 953, column: 5, file: SmartCL.Components]").FHandle.onblur = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 954, column: 5, file: SmartCL.Components]").FHandle.onchange = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 955, column: 5, file: SmartCL.Components]").FHandle.onmousedown = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 956, column: 5, file: SmartCL.Components]").FHandle.onmouseup = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 957, column: 5, file: SmartCL.Components]").FHandle.onmousemove = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 958, column: 5, file: SmartCL.Components]").FHandle.onmouseover = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 959, column: 5, file: SmartCL.Components]").FHandle.onmouseout = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 960, column: 5, file: SmartCL.Components]").FHandle.onclick = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 961, column: 5, file: SmartCL.Components]").FHandle.ondblclick = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 962, column: 5, file: SmartCL.Components]").FHandle.onkeydown = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 963, column: 5, file: SmartCL.Components]").FHandle.onkeyup = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 964, column: 5, file: SmartCL.Components]").FHandle.onkeypress = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 965, column: 5, file: SmartCL.Components]").FHandle.webkitAnimationStart = null;
         $Check(Self," in TW3TagObj.UnHookEvents [line: 966, column: 5, file: SmartCL.Components]").FHandle.webkitAnimationEnd = null;
      }
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
   ,AfterUpdate$:function($){return $.ClassType.AfterUpdate($)}
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId$:function($){return $.ClassType.MakeElementTagId($)}
   ,MakeElementTagObj$:function($){return $.ClassType.MakeElementTagObj($)}
   ,StyleTagObject$:function($){return $.ClassType.StyleTagObject($)}
};
/// TW3Component = class (TW3TagObj)
///  [line: 166, column: 3, file: SmartCL.Components]
var TW3Component = {
   $ClassName:"TW3Component",
   $Parent:TW3TagObj
   ,$Init:function ($) {
      TW3TagObj.$Init($);
      $.FChildren = [];
      $.FName = "";
      $.FParent = null;
   }
   /// procedure TW3Component.CBNoBehavior()
   ///  [line: 1113, column: 24, file: SmartCL.Components]
   ,CBNoBehavior:function(Self) {
      if (event) {
         event.preventDefault();
      }
   }
   /// procedure TW3Component.ChildAdded(aChild: TW3Component)
   ///  [line: 1221, column: 24, file: SmartCL.Components]
   ,ChildAdded:function(Self, aChild) {
      /* null */
   }
   /// function TW3Component.ChildByName(const compName: String) : TW3Component
   ///  [line: 1119, column: 23, file: SmartCL.Components]
   ,ChildByName:function(Self, compName) {
      var Result = null;
      var lcName = "";
      var i = 0;
      lcName = (Trim$_String_(compName)).toLowerCase();
      var $temp1;
      for(i = 0,$temp1 = TW3Component.GetChildCount(Self);i<$temp1;i++) {
         Result = TW3Component.GetChildObject(Self,i);
         if (($Check(Result," in TW3Component.ChildByName [line: 1124, column: 25, file: SmartCL.Components]").FName).toLowerCase()==lcName) {
            return Result;
         }
      }
      Result = null;
      return Result
   }
   /// procedure TW3Component.ChildRemoved(aChild: TW3Component)
   ///  [line: 1225, column: 24, file: SmartCL.Components]
   ,ChildRemoved:function(Self, aChild$1) {
      /* null */
   }
   /// constructor TW3Component.Create(AOwner: TW3Component)
   ///  [line: 1099, column: 26, file: SmartCL.Components]
   ,Create$18:function(Self, AOwner$1) {
      $Check(Self," in TW3Component.Create [line: 1102, column: 3, file: SmartCL.Components]").FParent = AOwner$1;
      TW3TagObj.Create$17(Self);
      if ($Check(Self," in TW3Component.Create [line: 1109, column: 6, file: SmartCL.Components]").FParent!==null) {
         TW3Component.RegisterChild($Check(Self," in TW3Component.Create [line: 1110, column: 5, file: SmartCL.Components]").FParent,Self);
      }
      return Self
   }
   /// procedure TW3Component.FinalizeObject()
   ///  [line: 1165, column: 24, file: SmartCL.Components]
   ,FinalizeObject:function(Self) {
      TW3Component.FreeChildren(Self);
      if ($Check(Self," in TW3Component.FinalizeObject [line: 1171, column: 6, file: SmartCL.Components]").FParent!==null) {
         TW3Component.UnRegisterChild($Check(Self," in TW3Component.FinalizeObject [line: 1172, column: 5, file: SmartCL.Components]").FParent,Self);
      }
      $Check(Self," in TW3Component.FinalizeObject [line: 1175, column: 3, file: SmartCL.Components]").FChildren.length=0;
      TW3TagObj.FinalizeObject(Self);
   }
   /// procedure TW3Component.FreeChildren()
   ///  [line: 1195, column: 24, file: SmartCL.Components]
   ,FreeChildren:function(Self) {
      var oldCount = 0;
      try {
         while ($Check(Self," in TW3Component.FreeChildren [line: 1202, column: 13, file: SmartCL.Components]").FChildren.length>0) {
            oldCount = $Check(Self," in TW3Component.FreeChildren [line: 1204, column: 25, file: SmartCL.Components]").FChildren.length;
            TObject.Free($DIdxR($Check(Self," in TW3Component.FreeChildren [line: 1205, column: 9, file: SmartCL.Components]").FChildren,0," in TW3Component.FreeChildren [line: 1205, column: 21, file: SmartCL.Components]"));
            if (oldCount==$Check(Self," in TW3Component.FreeChildren [line: 1206, column: 23, file: SmartCL.Components]").FChildren.length) {
               $Check(Self," in TW3Component.FreeChildren [line: 1209, column: 11, file: SmartCL.Components]").FChildren.shift();
            }
         }
      } finally {
         $Check(Self," in TW3Component.FreeChildren [line: 1212, column: 7, file: SmartCL.Components]").FChildren.length=0;
      }
   }
   /// function TW3Component.GetChildCount() : Integer
   ///  [line: 1180, column: 23, file: SmartCL.Components]
   ,GetChildCount:function(Self) {
      return $Check(Self," in TW3Component.GetChildCount [line: 1182, column: 13, file: SmartCL.Components]").FChildren.length;
   }
   /// function TW3Component.GetChildObject(index: Integer) : TW3Component
   ///  [line: 1185, column: 23, file: SmartCL.Components]
   ,GetChildObject:function(Self, index) {
      return $DIdxR($Check(Self," in TW3Component.GetChildObject [line: 1187, column: 13, file: SmartCL.Components]").FChildren,index," in TW3Component.GetChildObject [line: 1187, column: 29, file: SmartCL.Components]");
   }
   /// procedure TW3Component.InitializeObject()
   ///  [line: 1160, column: 24, file: SmartCL.Components]
   ,InitializeObject:function(Self) {
      TW3TagObj.InitializeObject(Self);
   }
   /// procedure TW3Component.RegisterChild(aChild: TW3Component)
   ///  [line: 1229, column: 24, file: SmartCL.Components]
   ,RegisterChild:function(Self, aChild$2) {
      if ((aChild$2!==null)&&($Check(Self," in TW3Component.RegisterChild [line: 1231, column: 27, file: SmartCL.Components]").FChildren.indexOf(aChild$2)<0)) {
         $Check(Self," in TW3Component.RegisterChild [line: 1233, column: 5, file: SmartCL.Components]").FChildren.push(aChild$2);
         TW3TagObj.InsertInto(aChild$2,$Check(Self," in TW3Component.RegisterChild [line: 1234, column: 28, file: SmartCL.Components]").FHandle);
         TW3Component.ChildAdded$($Check(Self," in TW3Component.RegisterChild [line: 1235, column: 5, file: SmartCL.Components]"),aChild$2);
      }
   }
   /// procedure TW3Component.SetName(Value: String)
   ///  [line: 1190, column: 24, file: SmartCL.Components]
   ,SetName:function(Self, Value$6) {
      $Check(Self," in TW3Component.SetName [line: 1192, column: 3, file: SmartCL.Components]").FName = Value$6;
   }
   /// procedure TW3Component.UnRegisterChild(aChild: TW3Component)
   ///  [line: 1239, column: 24, file: SmartCL.Components]
   ,UnRegisterChild:function(Self, aChild$3) {
      var mIndex = 0;
      if (aChild$3!==null) {
         mIndex = $Check(Self," in TW3Component.UnRegisterChild [line: 1245, column: 15, file: SmartCL.Components]").FChildren.indexOf(aChild$3);
         if (mIndex>=0) {
            $Check(Self," in TW3Component.UnRegisterChild [line: 1248, column: 7, file: SmartCL.Components]").FChildren.splice(mIndex,1)
            ;
            TW3Component.ChildRemoved($Check(Self," in TW3Component.UnRegisterChild [line: 1249, column: 7, file: SmartCL.Components]"),aChild$3);
         }
         TW3TagObj.RemoveFrom(aChild$3);
      }
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3TagObj.AfterUpdate
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3TagObj.StyleTagObject
   ,ChildAdded$:function($){return $.ClassType.ChildAdded.apply($.ClassType, arguments)}
   ,Create$18$:function($){return $.ClassType.Create$18.apply($.ClassType, arguments)}
};
/// TW3MovableControl = class (TW3Component)
///  [line: 296, column: 3, file: SmartCL.Components]
var TW3MovableControl = {
   $ClassName:"TW3MovableControl",
   $Parent:TW3Component
   ,$Init:function ($) {
      TW3Component.$Init($);
      $.FAdjusted = $.FTransparent = $.FUseAlpha = $.FWasMoved = $.FWasSized = false;
      $.FAlpha = 0;
      $.FBackground = $.FBorders = $.FConstraints = null;
      $.FColor = 0;
   }
   /// procedure TW3MovableControl.AdjustToParentBox()
   ///  [line: 1598, column: 29, file: SmartCL.Components]
   ,AdjustToParentBox:function(Self) {
      var x$1 = 0;
      var dx = 0;
      var dy = 0;
      var mChild = null;
      var mCtrl = null;
      if ($Check(Self," in TW3MovableControl.AdjustToParentBox [line: 1605, column: 7, file: SmartCL.Components]").FHandle) {
         if (!$Check(Self," in TW3MovableControl.AdjustToParentBox [line: 1607, column: 12, file: SmartCL.Components]").FAdjusted) {
            $Check(Self," in TW3MovableControl.AdjustToParentBox [line: 1609, column: 7, file: SmartCL.Components]").FAdjusted = true;
            dx = TW3Borders.GetHSpace(TW3MovableControl.GetBorder(Self));
            dy = TW3Borders.GetVSpace(TW3MovableControl.GetBorder(Self));
            var $temp2;
            for(x$1 = 0,$temp2 = TW3Component.GetChildCount(Self);x$1<$temp2;x$1++) {
               mChild = TW3Component.GetChildObject(Self,x$1);
               if ($Is(mChild,TW3MovableControl)) {
                  mCtrl = $As(mChild,TW3MovableControl);
                  if (TW3MovableControl.supportAdjustment$($Check(mCtrl," in TW3MovableControl.AdjustToParentBox [line: 1618, column: 20, file: SmartCL.Components]").ClassType)) {
                     if ((dx>0)||(dy>0)) {
                        TW3MovableControl.SetSize($Check(mCtrl," in TW3MovableControl.AdjustToParentBox [line: 1621, column: 21, file: SmartCL.Components]"),TW3MovableControl.GetWidth$($Check(mCtrl," in TW3MovableControl.AdjustToParentBox [line: 1621, column: 35, file: SmartCL.Components]"))-dx,TW3MovableControl.GetHeight$($Check(mCtrl," in TW3MovableControl.AdjustToParentBox [line: 1621, column: 53, file: SmartCL.Components]"))-dy);
                     }
                     setTimeout($Event0(mCtrl,TW3MovableControl.AdjustToParentBox),1);
                  }
               }
            }
         }
      }
   }
   /// procedure TW3MovableControl.AfterUpdate()
   ///  [line: 1727, column: 29, file: SmartCL.Components]
   ,AfterUpdate:function(Self) {
      $Check(Self," in TW3MovableControl.AfterUpdate [line: 1729, column: 3, file: SmartCL.Components]").FWasMoved = false;
      $Check(Self," in TW3MovableControl.AfterUpdate [line: 1730, column: 3, file: SmartCL.Components]").FWasSized = false;
   }
   /// function TW3MovableControl.ClientHeight() : Integer
   ///  [line: 1643, column: 28, file: SmartCL.Components]
   ,ClientHeight:function(Self) {
      var Result = 0;
      if ($Check(Self," in TW3MovableControl.ClientHeight [line: 1645, column: 7, file: SmartCL.Components]").FHandle) {
         if (VarIsValidRef($Check(Self," in TW3MovableControl.ClientHeight [line: 1647, column: 22, file: SmartCL.Components]").FHandle.clientHeight)) {
            Result = TVariant.AsInteger($Check(Self," in TW3MovableControl.ClientHeight [line: 1649, column: 36, file: SmartCL.Components]").FHandle.clientHeight);
            if (isNaN(Result)||(Result==0)) {
               Result = TW3MovableControl.GetWidth$($Check(Self," in TW3MovableControl.ClientHeight [line: 1651, column: 19, file: SmartCL.Components]"));
            }
         } else {
            Result = TW3MovableControl.GetWidth$($Check(Self," in TW3MovableControl.ClientHeight [line: 1652, column: 24, file: SmartCL.Components]"));
         }
      }
      return Result
   }
   /// function TW3MovableControl.ClientWidth() : Integer
   ///  [line: 1630, column: 28, file: SmartCL.Components]
   ,ClientWidth:function(Self) {
      var Result = 0;
      if ($Check(Self," in TW3MovableControl.ClientWidth [line: 1632, column: 7, file: SmartCL.Components]").FHandle) {
         if (VarIsValidRef($Check(Self," in TW3MovableControl.ClientWidth [line: 1634, column: 22, file: SmartCL.Components]").FHandle.clientWidth)) {
            Result = TVariant.AsInteger($Check(Self," in TW3MovableControl.ClientWidth [line: 1636, column: 36, file: SmartCL.Components]").FHandle.clientWidth);
            if (isNaN(Result)||(Result==0)) {
               Result = TW3MovableControl.GetWidth$($Check(Self," in TW3MovableControl.ClientWidth [line: 1638, column: 19, file: SmartCL.Components]"));
            }
         } else {
            Result = TW3MovableControl.GetWidth$($Check(Self," in TW3MovableControl.ClientWidth [line: 1639, column: 24, file: SmartCL.Components]"));
         }
      }
      return Result
   }
   /// function TW3MovableControl.DisplayMode() : String
   ///  [line: 1748, column: 34, file: SmartCL.Components]
   ,DisplayMode:function(Self) {
      return "inline-block";
   }
   /// procedure TW3MovableControl.FinalizeObject()
   ///  [line: 1699, column: 29, file: SmartCL.Components]
   ,FinalizeObject:function(Self) {
      if ($Check(Self," in TW3MovableControl.FinalizeObject [line: 1701, column: 15, file: SmartCL.Components]").FBackground) {
         TObject.Free($Check(Self," in TW3MovableControl.FinalizeObject [line: 1702, column: 5, file: SmartCL.Components]").FBackground);
      }
      if ($Check(Self," in TW3MovableControl.FinalizeObject [line: 1704, column: 15, file: SmartCL.Components]").FBorders) {
         TObject.Free($Check(Self," in TW3MovableControl.FinalizeObject [line: 1705, column: 5, file: SmartCL.Components]").FBorders);
      }
      if ($Check(Self," in TW3MovableControl.FinalizeObject [line: 1707, column: 15, file: SmartCL.Components]").FConstraints) {
         TObject.Free($Check(Self," in TW3MovableControl.FinalizeObject [line: 1708, column: 5, file: SmartCL.Components]").FConstraints);
      }
      TW3Component.FinalizeObject(Self);
   }
   /// function TW3MovableControl.GetBorder() : TW3Borders
   ///  [line: 1720, column: 28, file: SmartCL.Components]
   ,GetBorder:function(Self) {
      var Result = null;
      if ($Check(Self," in TW3MovableControl.GetBorder [line: 1722, column: 6, file: SmartCL.Components]").FBorders===null) {
         $Check(Self," in TW3MovableControl.GetBorder [line: 1723, column: 3, file: SmartCL.Components]").FBorders = TW3OwnedObject.Create$4$($New(TW3Borders),Self);
      }
      Result = $Check(Self," in TW3MovableControl.GetBorder [line: 1724, column: 13, file: SmartCL.Components]").FBorders;
      return Result
   }
   /// function TW3MovableControl.GetBoundsRect() : TRect
   ///  [line: 1771, column: 28, file: SmartCL.Components]
   ,GetBoundsRect:function(Self) {
      var Result = {Bottom$1:0,Left$1:0,Right$1:0,Top$1:0};
      Result.Left$1 = TW3MovableControl.GetLeft($Check(Self," in TW3MovableControl.GetBoundsRect [line: 1773, column: 18, file: SmartCL.Components]"));
      Result.Top$1 = TW3MovableControl.GetTop($Check(Self," in TW3MovableControl.GetBoundsRect [line: 1774, column: 17, file: SmartCL.Components]"));
      Result.Right$1 = Result.Left$1+TW3MovableControl.GetWidth$($Check(Self," in TW3MovableControl.GetBoundsRect [line: 1775, column: 33, file: SmartCL.Components]"));
      Result.Bottom$1 = Result.Top$1+TW3MovableControl.GetHeight$($Check(Self," in TW3MovableControl.GetBoundsRect [line: 1776, column: 33, file: SmartCL.Components]"));
      return Result
   }
   /// function TW3MovableControl.GetHeight() : Integer
   ///  [line: 1823, column: 28, file: SmartCL.Components]
   ,GetHeight:function(Self) {
      var Result = 0;
      if ($Check(Self," in TW3MovableControl.GetHeight [line: 1825, column: 6, file: SmartCL.Components]").FHandle) {
         Result = parseInt($Check(Self," in TW3MovableControl.GetHeight [line: 1826, column: 16, file: SmartCL.Components]").FHandle.offsetHeight,10);
      }
      return Result
   }
   /// function TW3MovableControl.GetLeft() : Integer
   ///  [line: 1779, column: 28, file: SmartCL.Components]
   ,GetLeft:function(Self) {
      return w3_getStyleAsInt($Check(Self," in TW3MovableControl.GetLeft [line: 1781, column: 30, file: SmartCL.Components]").FHandle,"left");
   }
   /// function TW3MovableControl.GetTop() : Integer
   ///  [line: 1792, column: 28, file: SmartCL.Components]
   ,GetTop:function(Self) {
      return w3_getStyleAsInt($Check(Self," in TW3MovableControl.GetTop [line: 1794, column: 30, file: SmartCL.Components]").FHandle,"top");
   }
   /// function TW3MovableControl.GetVisible() : Boolean
   ///  [line: 1740, column: 28, file: SmartCL.Components]
   ,GetVisible:function(Self) {
      var Result = false;
      var mValue$2 = "";
      mValue$2 = w3_getStyleAsStr($Check(Self," in TW3MovableControl.GetVisible [line: 1744, column: 30, file: SmartCL.Components]").FHandle,"visibility");
      Result = (mValue$2).toLowerCase()=="visible";
      return Result
   }
   /// function TW3MovableControl.GetWasMoved() : Boolean
   ///  [line: 1841, column: 28, file: SmartCL.Components]
   ,GetWasMoved:function(Self) {
      return $Check(Self," in TW3MovableControl.GetWasMoved [line: 1843, column: 13, file: SmartCL.Components]").FWasMoved;
   }
   /// function TW3MovableControl.GetWasSized() : Boolean
   ///  [line: 1846, column: 28, file: SmartCL.Components]
   ,GetWasSized:function(Self) {
      return $Check(Self," in TW3MovableControl.GetWasSized [line: 1848, column: 13, file: SmartCL.Components]").FWasSized;
   }
   /// function TW3MovableControl.GetWidth() : Integer
   ///  [line: 1805, column: 28, file: SmartCL.Components]
   ,GetWidth:function(Self) {
      var Result = 0;
      if ($Check(Self," in TW3MovableControl.GetWidth [line: 1807, column: 6, file: SmartCL.Components]").FHandle) {
         Result = parseInt($Check(Self," in TW3MovableControl.GetWidth [line: 1808, column: 16, file: SmartCL.Components]").FHandle.offsetWidth,10);
      }
      return Result
   }
   /// procedure TW3MovableControl.InitializeObject()
   ///  [line: 1528, column: 29, file: SmartCL.Components]
   ,InitializeObject:function(Self) {
      TW3Component.InitializeObject(Self);
      $Check(Self," in TW3MovableControl.InitializeObject [line: 1532, column: 3, file: SmartCL.Components]").FAlpha = 255;
      $Check(Self," in TW3MovableControl.InitializeObject [line: 1533, column: 3, file: SmartCL.Components]").FColor = 536870911;
      $Check(Self," in TW3MovableControl.InitializeObject [line: 1534, column: 3, file: SmartCL.Components]").FTransparent = false;
   }
   /// procedure TW3MovableControl.MoveTo(aLeft: Integer; aTop: Integer)
   ///  [line: 1869, column: 29, file: SmartCL.Components]
   ,MoveTo:function(Self, aLeft$1, aTop$1) {
      TW3TagObj.BeginUpdate(Self);
      $Check(Self," in TW3MovableControl.MoveTo [line: 1872, column: 9, file: SmartCL.Components]").FHandle.style["left"] = TInteger.ToPxStr(aLeft$1);
      $Check(Self," in TW3MovableControl.MoveTo [line: 1873, column: 9, file: SmartCL.Components]").FHandle.style["top"] = TInteger.ToPxStr(aTop$1);
      TW3MovableControl.SetWasMoved(Self);
      TW3TagObj.EndUpdate($Check(Self," in TW3MovableControl.MoveTo [line: 1875, column: 3, file: SmartCL.Components]"));
   }
   /// procedure TW3MovableControl.Resize()
   ///  [line: 1865, column: 29, file: SmartCL.Components]
   ,Resize:function(Self) {
      /* null */
   }
   /// function TW3MovableControl.ScreenRect() : TRect
   ///  [line: 1662, column: 28, file: SmartCL.Components]
   ,ScreenRect:function(Self) {
      var Result = {Bottom$1:0,Left$1:0,Right$1:0,Top$1:0};
      var elem = undefined;
      if ($Check(Self," in TW3MovableControl.ScreenRect [line: 1664, column: 7, file: SmartCL.Components]").FHandle) {
         elem = $Check(Self," in TW3MovableControl.ScreenRect [line: 1666, column: 17, file: SmartCL.Components]").FHandle;
         while (1) {
            Result.Left$1+=parseInt(elem.offsetLeft,10);
            Result.Top$1+=parseInt(elem.offsetTop,10);
            elem = elem.offsetParent;
            if (elem) {
               Result.Left$1-=parseInt(elem.scrollLeft,10);
               Result.Top$1-=parseInt(elem.scrollTop,10);
            } else {
               break;
            }
         }
         Result.Right$1 = parseInt((Result.Left$1+$Check(Self," in TW3MovableControl.ScreenRect [line: 1680, column: 35, file: SmartCL.Components]").FHandle.offsetWidth),10);
         Result.Bottom$1 = parseInt((Result.Top$1+$Check(Self," in TW3MovableControl.ScreenRect [line: 1681, column: 35, file: SmartCL.Components]").FHandle.offsetHeight),10);
      }
      return Result
   }
   /// procedure TW3MovableControl.SetAlpha(const aValue: Integer)
   ///  [line: 1935, column: 29, file: SmartCL.Components]
   ,SetAlpha:function(Self, aValue$14) {
      $Check(Self," in TW3MovableControl.SetAlpha [line: 1938, column: 3, file: SmartCL.Components]").FAlpha = ClampInt(aValue$14,0,255);
      if ($Check(Self," in TW3MovableControl.SetAlpha [line: 1941, column: 6, file: SmartCL.Components]").FUseAlpha) {
         $Check(Self," in TW3MovableControl.SetAlpha [line: 1942, column: 11, file: SmartCL.Components]").FHandle.style["opacity"] = $Check(Self," in TW3MovableControl.SetAlpha [line: 1942, column: 32, file: SmartCL.Components]").FAlpha*0.01;
      }
   }
   /// procedure TW3MovableControl.SetBounds(aLeft: Integer; aTop: Integer; aWidth: Integer; aHeight: Integer)
   ///  [line: 1878, column: 29, file: SmartCL.Components]
   ,SetBounds$2:function(Self, aLeft$2, aTop$2, aWidth, aHeight) {
      var mSized = false;
      var mMoved = false;
      aWidth = Math.max(0,aWidth);
      aHeight = Math.max(0,aHeight);
      mMoved = (aLeft$2!=TW3MovableControl.GetLeft($Check(Self," in TW3MovableControl.SetBounds [line: 1887, column: 23, file: SmartCL.Components]")))||(aTop$2!=TW3MovableControl.GetTop($Check(Self," in TW3MovableControl.SetBounds [line: 1887, column: 44, file: SmartCL.Components]")));
      mSized = (aWidth!=TW3MovableControl.GetWidth$($Check(Self," in TW3MovableControl.SetBounds [line: 1890, column: 24, file: SmartCL.Components]")))||(aHeight!=TW3MovableControl.GetHeight$($Check(Self," in TW3MovableControl.SetBounds [line: 1890, column: 49, file: SmartCL.Components]")));
      TW3TagObj.BeginUpdate(Self);
      $Check(Self," in TW3MovableControl.SetBounds [line: 1893, column: 9, file: SmartCL.Components]").FHandle.style["left"] = TInteger.ToPxStr(aLeft$2);
      $Check(Self," in TW3MovableControl.SetBounds [line: 1894, column: 9, file: SmartCL.Components]").FHandle.style["top"] = TInteger.ToPxStr(aTop$2);
      $Check(Self," in TW3MovableControl.SetBounds [line: 1895, column: 9, file: SmartCL.Components]").FHandle.style["width"] = TInteger.ToPxStr(aWidth);
      $Check(Self," in TW3MovableControl.SetBounds [line: 1896, column: 9, file: SmartCL.Components]").FHandle.style["height"] = TInteger.ToPxStr(aHeight);
      if (mMoved) {
         TW3MovableControl.SetWasMoved(Self);
      }
      if (mSized) {
         TW3MovableControl.SetWasSized(Self);
      }
      TW3TagObj.EndUpdate($Check(Self," in TW3MovableControl.SetBounds [line: 1899, column: 3, file: SmartCL.Components]"));
   }
   /// procedure TW3MovableControl.SetColor(const aValue: TColor)
   ///  [line: 1960, column: 29, file: SmartCL.Components]
   ,SetColor:function(Self, aValue$15) {
      var mText = "";
      if (aValue$15!=$Check(Self," in TW3MovableControl.SetColor [line: 1964, column: 16, file: SmartCL.Components]").FColor) {
         $Check(Self," in TW3MovableControl.SetColor [line: 1966, column: 5, file: SmartCL.Components]").FColor = aValue$15;
         mText = ColorToWebStr($Check(Self," in TW3MovableControl.SetColor [line: 1967, column: 28, file: SmartCL.Components]").FColor,($Check(Self," in TW3MovableControl.SetColor [line: 1967, column: 39, file: SmartCL.Components]").FTransparent)?0:255);
         $Check(Self," in TW3MovableControl.SetColor [line: 1968, column: 11, file: SmartCL.Components]").FHandle.style["backgroundColor"] = mText;
      }
   }
   /// procedure TW3MovableControl.SetHeight(aValue: Integer)
   ///  [line: 1829, column: 29, file: SmartCL.Components]
   ,SetHeight:function(Self, aValue$16) {
      aValue$16 = Math.max(aValue$16,0);
      if (aValue$16!=TW3MovableControl.GetHeight$($Check(Self," in TW3MovableControl.SetHeight [line: 1832, column: 14, file: SmartCL.Components]"))) {
         TW3TagObj.BeginUpdate(Self);
         $Check(Self," in TW3MovableControl.SetHeight [line: 1835, column: 11, file: SmartCL.Components]").FHandle.style["height"] = TInteger.ToPxStr(aValue$16);
         TW3MovableControl.SetWasSized(Self);
         TW3TagObj.EndUpdate($Check(Self," in TW3MovableControl.SetHeight [line: 1837, column: 5, file: SmartCL.Components]"));
      }
   }
   /// procedure TW3MovableControl.SetLeft(const aValue: Integer)
   ///  [line: 1784, column: 29, file: SmartCL.Components]
   ,SetLeft:function(Self, aValue$17) {
      TW3TagObj.BeginUpdate(Self);
      $Check(Self," in TW3MovableControl.SetLeft [line: 1787, column: 9, file: SmartCL.Components]").FHandle.style["left"] = TInteger.ToPxStr(aValue$17);
      TW3MovableControl.SetWasMoved(Self);
      TW3TagObj.EndUpdate($Check(Self," in TW3MovableControl.SetLeft [line: 1789, column: 3, file: SmartCL.Components]"));
   }
   /// procedure TW3MovableControl.SetSize(aWidth: Integer; aHeight: Integer)
   ///  [line: 1907, column: 29, file: SmartCL.Components]
   ,SetSize:function(Self, aWidth$1, aHeight$1) {
      aWidth$1 = Math.max(aWidth$1,0);
      aHeight$1 = Math.max(aHeight$1,0);
      if ((aWidth$1!=TW3MovableControl.GetWidth$($Check(Self," in TW3MovableControl.SetSize [line: 1911, column: 17, file: SmartCL.Components]")))||(aHeight$1!=TW3MovableControl.GetHeight$($Check(Self," in TW3MovableControl.SetSize [line: 1911, column: 39, file: SmartCL.Components]")))) {
         TW3TagObj.BeginUpdate(Self);
         $Check(Self," in TW3MovableControl.SetSize [line: 1914, column: 11, file: SmartCL.Components]").FHandle.style["width"] = TInteger.ToPxStr(aWidth$1);
         $Check(Self," in TW3MovableControl.SetSize [line: 1915, column: 11, file: SmartCL.Components]").FHandle.style["height"] = TInteger.ToPxStr(aHeight$1);
         TW3MovableControl.SetWasSized(Self);
         TW3TagObj.EndUpdate($Check(Self," in TW3MovableControl.SetSize [line: 1917, column: 5, file: SmartCL.Components]"));
      }
   }
   /// procedure TW3MovableControl.SetTop(const aValue: Integer)
   ///  [line: 1797, column: 29, file: SmartCL.Components]
   ,SetTop:function(Self, aValue$18) {
      TW3TagObj.BeginUpdate(Self);
      $Check(Self," in TW3MovableControl.SetTop [line: 1800, column: 9, file: SmartCL.Components]").FHandle.style["top"] = TInteger.ToPxStr(aValue$18);
      TW3MovableControl.SetWasMoved(Self);
      TW3TagObj.EndUpdate($Check(Self," in TW3MovableControl.SetTop [line: 1802, column: 3, file: SmartCL.Components]"));
   }
   /// procedure TW3MovableControl.SetTransparent(const aValue: Boolean)
   ///  [line: 1945, column: 29, file: SmartCL.Components]
   ,SetTransparent:function(Self, aValue$19) {
      var mText$1 = "";
      if (aValue$19!=$Check(Self," in TW3MovableControl.SetTransparent [line: 1949, column: 16, file: SmartCL.Components]").FTransparent) {
         TW3TagObj.BeginUpdate(Self);
         $Check(Self," in TW3MovableControl.SetTransparent [line: 1952, column: 5, file: SmartCL.Components]").FTransparent = aValue$19;
         mText$1 = ColorToWebStr($Check(Self," in TW3MovableControl.SetTransparent [line: 1953, column: 28, file: SmartCL.Components]").FColor,(aValue$19)?0:255);
         $Check(Self," in TW3MovableControl.SetTransparent [line: 1954, column: 11, file: SmartCL.Components]").FHandle.style["backgroundColor"] = mText$1;
         TW3MovableControl.SetWasMoved(Self);
         TW3TagObj.EndUpdate($Check(Self," in TW3MovableControl.SetTransparent [line: 1956, column: 5, file: SmartCL.Components]"));
      }
   }
   /// procedure TW3MovableControl.SetUseAlpha(const aValue: Boolean)
   ///  [line: 1921, column: 29, file: SmartCL.Components]
   ,SetUseAlpha:function(Self, aValue$20) {
      var mBlend = 0;
      if (aValue$20==$Check(Self," in TW3MovableControl.SetUseAlpha [line: 1925, column: 15, file: SmartCL.Components]").FUseAlpha) {
         return;
      }
      $Check(Self," in TW3MovableControl.SetUseAlpha [line: 1927, column: 3, file: SmartCL.Components]").FUseAlpha = aValue$20;
      if (aValue$20) {
         mBlend = $Check(Self," in TW3MovableControl.SetUseAlpha [line: 1929, column: 16, file: SmartCL.Components]").FAlpha*0.01;
      } else {
         mBlend = 1;
      }
      $Check(Self," in TW3MovableControl.SetUseAlpha [line: 1932, column: 9, file: SmartCL.Components]").FHandle.style["opacity"] = mBlend;
   }
   /// procedure TW3MovableControl.SetVisible(const aValue: Boolean)
   ///  [line: 1753, column: 29, file: SmartCL.Components]
   ,SetVisible:function(Self, aValue$21) {
      TW3TagObj.BeginUpdate(Self);
      if (aValue$21) {
         $Check(Self," in TW3MovableControl.SetVisible [line: 1757, column: 13, file: SmartCL.Components]").FHandle.style["display"] = TW3MovableControl.DisplayMode($Check(Self," in TW3MovableControl.SetVisible [line: 1757, column: 34, file: SmartCL.Components]").ClassType);
         $Check(Self," in TW3MovableControl.SetVisible [line: 1758, column: 13, file: SmartCL.Components]").FHandle.style["visibility"] = "visible";
         TW3MovableControl.SetWasSized(Self);
      } else {
         $Check(Self," in TW3MovableControl.SetVisible [line: 1765, column: 13, file: SmartCL.Components]").FHandle.style["display"] = "none";
         $Check(Self," in TW3MovableControl.SetVisible [line: 1766, column: 13, file: SmartCL.Components]").FHandle.style["visibility"] = "hidden";
      }
      TW3TagObj.EndUpdate($Check(Self," in TW3MovableControl.SetVisible [line: 1768, column: 3, file: SmartCL.Components]"));
   }
   /// procedure TW3MovableControl.SetWasMoved()
   ///  [line: 1851, column: 29, file: SmartCL.Components]
   ,SetWasMoved:function(Self) {
      $Check(Self," in TW3MovableControl.SetWasMoved [line: 1853, column: 3, file: SmartCL.Components]").FWasMoved = true;
   }
   /// procedure TW3MovableControl.SetWasSized()
   ///  [line: 1856, column: 29, file: SmartCL.Components]
   ,SetWasSized:function(Self) {
      $Check(Self," in TW3MovableControl.SetWasSized [line: 1858, column: 3, file: SmartCL.Components]").FWasSized = true;
   }
   /// procedure TW3MovableControl.SetWidth(aValue: Integer)
   ///  [line: 1811, column: 29, file: SmartCL.Components]
   ,SetWidth:function(Self, aValue$22) {
      aValue$22 = Math.max(aValue$22,0);
      if (aValue$22!=TW3MovableControl.GetWidth$($Check(Self," in TW3MovableControl.SetWidth [line: 1814, column: 14, file: SmartCL.Components]"))) {
         TW3TagObj.BeginUpdate(Self);
         $Check(Self," in TW3MovableControl.SetWidth [line: 1817, column: 11, file: SmartCL.Components]").FHandle.style["width"] = TInteger.ToPxStr(aValue$22);
         TW3MovableControl.SetWasSized(Self);
         TW3TagObj.EndUpdate($Check(Self," in TW3MovableControl.SetWidth [line: 1819, column: 5, file: SmartCL.Components]"));
      }
   }
   /// function TW3MovableControl.supportAdjustment() : Boolean
   ///  [line: 1593, column: 34, file: SmartCL.Components]
   ,supportAdjustment:function(Self) {
      return true;
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate$:function($){return $.ClassType.AfterUpdate($)}
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3TagObj.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3Component.Create$18
   ,GetHeight$:function($){return $.ClassType.GetHeight($)}
   ,GetWidth$:function($){return $.ClassType.GetWidth($)}
   ,Resize$:function($){return $.ClassType.Resize($)}
   ,SetHeight$:function($){return $.ClassType.SetHeight.apply($.ClassType, arguments)}
   ,SetWidth$:function($){return $.ClassType.SetWidth.apply($.ClassType, arguments)}
   ,supportAdjustment$:function($){return $.supportAdjustment($)}
};
/// TW3CustomControl = class (TW3MovableControl)
///  [line: 376, column: 3, file: SmartCL.Components]
var TW3CustomControl = {
   $ClassName:"TW3CustomControl",
   $Parent:TW3MovableControl
   ,$Init:function ($) {
      TW3MovableControl.$Init($);
      $.FAngle = 0;
      $.FClassNames = $.FFont = $.FGestureData = $.FNoBehavior = $.FOnAnimationBegins = $.FOnAnimationEnds = $.FOnChanged = $.FOnClick = $.FOnContextPopup = $.FOnDblClick = $.FOnGestureChange = $.FOnGestureEnd = $.FOnGestureStart = $.FOnGotFocus = $.FOnKeyDown = $.FOnKeyPress = $.FOnKeyUp = $.FOnLostFocus = $.FOnMouseDown = $.FOnMouseEnter = $.FOnMouseExit = $.FOnMouseMove = $.FOnMouseUp = $.FOnMouseWheel = $.FOnResize = $.FOnTouchBegins = $.FOnTouchEnds = $.FOnTouchMoves = $.FScrollInfo = $.FTouchData = null;
      $.FMouseCaptured = 0;
      $.FTouchBound = false;
   }
   /// anonymous TSourceMethodSymbol
   ///  [line: 31, column: 43, file: SmartCL.MouseCapture]
   ,a$2:function(Self) {
      return vCaptureControl===Self;
   }
   /// procedure TW3CustomControl.AfterUpdate()
   ///  [line: 2784, column: 28, file: SmartCL.Components]
   ,AfterUpdate:function(Self) {
      if (TW3MovableControl.GetWasSized(Self)) {
         if ($Check(Self," in TW3CustomControl.AfterUpdate [line: 2797, column: 8, file: SmartCL.Components]").FObjReady) {
            TW3MovableControl.Resize$($Check(Self," in TW3CustomControl.AfterUpdate [line: 2798, column: 7, file: SmartCL.Components]"));
         }
         if (!TW3MovableControl.GetWasMoved(Self)) {
            TW3MovableControl.SetWasMoved(Self);
         }
      }
      if (TW3MovableControl.GetWasMoved(Self)) {
         TW3CustomControl.Invalidate$($Check(Self," in TW3CustomControl.AfterUpdate [line: 2808, column: 5, file: SmartCL.Components]"));
      }
      TW3MovableControl.AfterUpdate(Self);
   }
   /// procedure TW3CustomControl.BindTouch()
   ///  [line: 2545, column: 28, file: SmartCL.Components]
   ,BindTouch:function(Self) {
      if ($Check(Self," in TW3CustomControl.BindTouch [line: 2547, column: 6, file: SmartCL.Components]").FTouchBound) {
         return;
      }
      $Check(Self," in TW3CustomControl.BindTouch [line: 2548, column: 3, file: SmartCL.Components]").FTouchBound = true;
      $Check(Self," in TW3CustomControl.BindTouch [line: 2549, column: 9, file: SmartCL.Components]").FHandle.addEventListener("touchstart",$Event1(Self,TW3CustomControl.CMTouchBegins));
      $Check(Self," in TW3CustomControl.BindTouch [line: 2550, column: 9, file: SmartCL.Components]").FHandle.addEventListener("touchmove",$Event1(Self,TW3CustomControl.CMTouchMove));
      $Check(Self," in TW3CustomControl.BindTouch [line: 2551, column: 9, file: SmartCL.Components]").FHandle.addEventListener("touchend",$Event1(Self,TW3CustomControl.CMTouchEnds));
   }
   /// procedure TW3CustomControl.BringToFront()
   ///  [line: 2164, column: 28, file: SmartCL.Components]
   ,BringToFront:function(Self) {
      if ($Check(Self," in TW3CustomControl.BringToFront [line: 2166, column: 7, file: SmartCL.Components]").FHandle) {
         $Check(Self," in TW3CustomControl.BringToFront [line: 2167, column: 11, file: SmartCL.Components]").FHandle.style.zIndex = (TW3CustomControl.GetMaxZIndex($As($Check(Self," in TW3CustomControl.BringToFront [line: 2167, column: 29, file: SmartCL.Components]").FParent,TW3CustomControl))+1);
      }
   }
   /// procedure TW3CustomControl.CBAnimationBegins(const eventObj: Variant)
   ///  [line: 2509, column: 28, file: SmartCL.Components]
   ,CBAnimationBegins:function(Self, eventObj) {
      if ($Check(Self," in TW3CustomControl.CBAnimationBegins [line: 2511, column: 15, file: SmartCL.Components]").FOnAnimationBegins) {
         $CheckFunc($Check(Self," in TW3CustomControl.CBAnimationBegins [line: 2512, column: 5, file: SmartCL.Components]").FOnAnimationBegins," in TW3CustomControl.CBAnimationBegins [line: 2512, column: 23, file: SmartCL.Components]")(Self);
      }
   }
   /// procedure TW3CustomControl.CBAnimationEnds(const eventObj: Variant)
   ///  [line: 2524, column: 28, file: SmartCL.Components]
   ,CBAnimationEnds:function(Self, eventObj$1) {
      if ($Check(Self," in TW3CustomControl.CBAnimationEnds [line: 2526, column: 15, file: SmartCL.Components]").FOnAnimationEnds) {
         $CheckFunc($Check(Self," in TW3CustomControl.CBAnimationEnds [line: 2527, column: 5, file: SmartCL.Components]").FOnAnimationEnds," in TW3CustomControl.CBAnimationEnds [line: 2527, column: 21, file: SmartCL.Components]")(Self);
      }
   }
   /// procedure TW3CustomControl.CBChanged(eventObj: JEvent)
   ///  [line: 2539, column: 28, file: SmartCL.Components]
   ,CBChanged:function(Self, eventObj$2) {
      if ($Check(Self," in TW3CustomControl.CBChanged [line: 2541, column: 15, file: SmartCL.Components]").FOnChanged) {
         $CheckFunc($Check(Self," in TW3CustomControl.CBChanged [line: 2542, column: 5, file: SmartCL.Components]").FOnChanged," in TW3CustomControl.CBChanged [line: 2542, column: 15, file: SmartCL.Components]")(Self);
      }
   }
   /// procedure TW3CustomControl.CBClick(eventObj: JEvent)
   ///  [line: 2430, column: 28, file: SmartCL.Components]
   ,CBClick:function(Self, eventObj$3) {
      if ($Check(Self," in TW3CustomControl.CBClick [line: 2436, column: 15, file: SmartCL.Components]").FOnClick) {
         $CheckFunc($Check(Self," in TW3CustomControl.CBClick [line: 2437, column: 5, file: SmartCL.Components]").FOnClick," in TW3CustomControl.CBClick [line: 2437, column: 13, file: SmartCL.Components]")(Self);
      }
   }
   /// function TW3CustomControl.CBContextPopup(event: JMouseEvent) : Boolean
   ///  [line: 2717, column: 27, file: SmartCL.Components]
   ,CBContextPopup:function(Self, event) {
      var Result = false;
      var sr = {Bottom$1:0,Left$1:0,Right$1:0,Top$1:0};
      var mp = {X$1:0,Y$1:0};
      var handled = {v:false};
      sr = TW3MovableControl.ScreenRect(Self);
      mp.X$1 = $Check(event," in TW3CustomControl.CBContextPopup [line: 2721, column: 17, file: SmartCL.Components]").clientX-sr.Left$1;
      mp.Y$1 = $Check(event," in TW3CustomControl.CBContextPopup [line: 2722, column: 17, file: SmartCL.Components]").clientY-sr.Top$1;
      handled.v = false;
      TW3CustomControl.ContextPopup(Self,mp,handled);
      Result = !handled.v;
      return Result
   }
   /// procedure TW3CustomControl.CBDblClick(eventObj: JEvent)
   ///  [line: 2450, column: 28, file: SmartCL.Components]
   ,CBDblClick:function(Self, eventObj$4) {
      if ($Check(Self," in TW3CustomControl.CBDblClick [line: 2456, column: 15, file: SmartCL.Components]").FOnDblClick) {
         $CheckFunc($Check(Self," in TW3CustomControl.CBDblClick [line: 2457, column: 5, file: SmartCL.Components]").FOnDblClick," in TW3CustomControl.CBDblClick [line: 2457, column: 16, file: SmartCL.Components]")(Self);
      }
   }
   /// procedure TW3CustomControl.CBFocused()
   ///  [line: 2079, column: 28, file: SmartCL.Components]
   ,CBFocused:function(Self) {
      if ($Check(Self," in TW3CustomControl.CBFocused [line: 2081, column: 15, file: SmartCL.Components]").FOnGotFocus) {
         $CheckFunc($Check(Self," in TW3CustomControl.CBFocused [line: 2082, column: 5, file: SmartCL.Components]").FOnGotFocus," in TW3CustomControl.CBFocused [line: 2082, column: 16, file: SmartCL.Components]")(Self);
      }
   }
   /// procedure TW3CustomControl.CBKeyDown(eventObj: JKeyboardEvent)
   ///  [line: 2467, column: 28, file: SmartCL.Components]
   ,CBKeyDown:function(Self, eventObj$5) {
      if ($Check(Self," in TW3CustomControl.CBKeyDown [line: 2469, column: 15, file: SmartCL.Components]").FOnKeyDown) {
         $CheckFunc($Check(Self," in TW3CustomControl.CBKeyDown [line: 2470, column: 5, file: SmartCL.Components]").FOnKeyDown," in TW3CustomControl.CBKeyDown [line: 2470, column: 15, file: SmartCL.Components]")(Self,$Check(eventObj$5," in TW3CustomControl.CBKeyDown [line: 2470, column: 30, file: SmartCL.Components]").keyCode);
      }
   }
   /// procedure TW3CustomControl.CBKeyPress(eventObj: JKeyboardEvent)
   ///  [line: 2494, column: 28, file: SmartCL.Components]
   ,CBKeyPress:function(Self, eventObj$6) {
      if ($Check(Self," in TW3CustomControl.CBKeyPress [line: 2496, column: 15, file: SmartCL.Components]").FOnKeyPress) {
         $CheckFunc($Check(Self," in TW3CustomControl.CBKeyPress [line: 2497, column: 5, file: SmartCL.Components]").FOnKeyPress," in TW3CustomControl.CBKeyPress [line: 2497, column: 16, file: SmartCL.Components]")(Self,$Check(eventObj$6," in TW3CustomControl.CBKeyPress [line: 2497, column: 32, file: SmartCL.Components]").charCode);
      }
   }
   /// procedure TW3CustomControl.CBKeyUp(eventObj: JKeyboardEvent)
   ///  [line: 2479, column: 28, file: SmartCL.Components]
   ,CBKeyUp:function(Self, eventObj$7) {
      if ($Check(Self," in TW3CustomControl.CBKeyUp [line: 2481, column: 15, file: SmartCL.Components]").FOnKeyUp) {
         $CheckFunc($Check(Self," in TW3CustomControl.CBKeyUp [line: 2482, column: 5, file: SmartCL.Components]").FOnKeyUp," in TW3CustomControl.CBKeyUp [line: 2482, column: 13, file: SmartCL.Components]")(Self,$Check(eventObj$7," in TW3CustomControl.CBKeyUp [line: 2482, column: 28, file: SmartCL.Components]").keyCode);
      }
   }
   /// procedure TW3CustomControl.CBLostFocus()
   ///  [line: 2085, column: 28, file: SmartCL.Components]
   ,CBLostFocus:function(Self) {
      if ($Check(Self," in TW3CustomControl.CBLostFocus [line: 2087, column: 15, file: SmartCL.Components]").FOnLostFocus) {
         $CheckFunc($Check(Self," in TW3CustomControl.CBLostFocus [line: 2088, column: 5, file: SmartCL.Components]").FOnLostFocus," in TW3CustomControl.CBLostFocus [line: 2088, column: 17, file: SmartCL.Components]")(Self);
      }
   }
   /// procedure TW3CustomControl.CBMouseDown(eventObj: JMouseEvent)
   ///  [line: 2268, column: 28, file: SmartCL.Components]
   ,CBMouseDown:function(Self, eventObj$8) {
      var sr$1 = {Bottom$1:0,Left$1:0,Right$1:0,Top$1:0};
      var shiftState = null;
      sr$1 = TW3MovableControl.ScreenRect(Self);
      shiftState = TShiftState.Current();
      $Check(shiftState," in TW3CustomControl.CBMouseDown [line: 2272, column: 27, file: SmartCL.Components]").FMouseButtons = $Check(shiftState," in TW3CustomControl.CBMouseDown [line: 2272, column: 41, file: SmartCL.Components]").FMouseButtons|(1<<$Check(eventObj$8," in TW3CustomControl.CBMouseDown [line: 2272, column: 73, file: SmartCL.Components]").button);
      TShiftState.SetMouseEvent(shiftState,eventObj$8);
      TW3CustomControl.MouseDown($Check(Self," in TW3CustomControl.CBMouseDown [line: 2274, column: 3, file: SmartCL.Components]"),$Check(eventObj$8," in TW3CustomControl.CBMouseDown [line: 2274, column: 22, file: SmartCL.Components]").button,shiftState,$Check(eventObj$8," in TW3CustomControl.CBMouseDown [line: 2274, column: 51, file: SmartCL.Components]").clientX-sr$1.Left$1,$Check(eventObj$8," in TW3CustomControl.CBMouseDown [line: 2275, column: 14, file: SmartCL.Components]").clientY-sr$1.Top$1);
   }
   /// procedure TW3CustomControl.CBMouseEnter(eventObj: JMouseEvent)
   ///  [line: 2335, column: 28, file: SmartCL.Components]
   ,CBMouseEnter:function(Self, eventObj$9) {
      var sr$2 = {Bottom$1:0,Left$1:0,Right$1:0,Top$1:0};
      var shiftState$1 = null;
      sr$2 = TW3MovableControl.ScreenRect(Self);
      shiftState$1 = TShiftState.Current();
      TShiftState.SetMouseEvent(shiftState$1,eventObj$9);
      TW3CustomControl.MouseEnter($Check(Self," in TW3CustomControl.CBMouseEnter [line: 2340, column: 3, file: SmartCL.Components]"),shiftState$1,$Check(eventObj$9," in TW3CustomControl.CBMouseEnter [line: 2340, column: 35, file: SmartCL.Components]").clientX-sr$2.Left$1,$Check(eventObj$9," in TW3CustomControl.CBMouseEnter [line: 2340, column: 63, file: SmartCL.Components]").clientY-sr$2.Top$1);
   }
   /// procedure TW3CustomControl.CBMouseExit(eventObj: JMouseEvent)
   ///  [line: 2359, column: 28, file: SmartCL.Components]
   ,CBMouseExit:function(Self, eventObj$10) {
      var sr$3 = {Bottom$1:0,Left$1:0,Right$1:0,Top$1:0};
      var shiftState$2 = null;
      sr$3 = TW3MovableControl.ScreenRect(Self);
      shiftState$2 = TShiftState.Current();
      TShiftState.SetMouseEvent(shiftState$2,eventObj$10);
      TW3CustomControl.MouseExit($Check(Self," in TW3CustomControl.CBMouseExit [line: 2364, column: 3, file: SmartCL.Components]"),shiftState$2,$Check(eventObj$10," in TW3CustomControl.CBMouseExit [line: 2364, column: 34, file: SmartCL.Components]").clientX-sr$3.Left$1,$Check(eventObj$10," in TW3CustomControl.CBMouseExit [line: 2364, column: 62, file: SmartCL.Components]").clientY-sr$3.Top$1);
   }
   /// procedure TW3CustomControl.CBMouseMove(eventObj: JMouseEvent)
   ///  [line: 2313, column: 28, file: SmartCL.Components]
   ,CBMouseMove:function(Self, eventObj$11) {
      var sr$4 = {Bottom$1:0,Left$1:0,Right$1:0,Top$1:0};
      var shiftState$3 = null;
      sr$4 = TW3MovableControl.ScreenRect(Self);
      shiftState$3 = TShiftState.Current();
      TShiftState.SetMouseEvent(shiftState$3,eventObj$11);
      TW3CustomControl.MouseMove($Check(Self," in TW3CustomControl.CBMouseMove [line: 2318, column: 3, file: SmartCL.Components]"),shiftState$3,$Check(eventObj$11," in TW3CustomControl.CBMouseMove [line: 2318, column: 34, file: SmartCL.Components]").clientX-sr$4.Left$1,$Check(eventObj$11," in TW3CustomControl.CBMouseMove [line: 2318, column: 62, file: SmartCL.Components]").clientY-sr$4.Top$1);
   }
   /// procedure TW3CustomControl.CBMouseUp(eventObj: JMouseEvent)
   ///  [line: 2291, column: 28, file: SmartCL.Components]
   ,CBMouseUp:function(Self, eventObj$12) {
      var sr$5 = {Bottom$1:0,Left$1:0,Right$1:0,Top$1:0};
      var shiftState$4 = null;
      sr$5 = TW3MovableControl.ScreenRect(Self);
      shiftState$4 = TShiftState.Current();
      $Check(shiftState$4," in TW3CustomControl.CBMouseUp [line: 2295, column: 28, file: SmartCL.Components]").FMouseButtons = $Check(shiftState$4," in TW3CustomControl.CBMouseUp [line: 2295, column: 42, file: SmartCL.Components]").FMouseButtons&(~(1<<$Check(eventObj$12," in TW3CustomControl.CBMouseUp [line: 2295, column: 79, file: SmartCL.Components]").button));
      TShiftState.SetMouseEvent(shiftState$4,eventObj$12);
      TW3CustomControl.MouseUp($Check(Self," in TW3CustomControl.CBMouseUp [line: 2297, column: 4, file: SmartCL.Components]"),$Check(eventObj$12," in TW3CustomControl.CBMouseUp [line: 2297, column: 21, file: SmartCL.Components]").button,shiftState$4,$Check(eventObj$12," in TW3CustomControl.CBMouseUp [line: 2298, column: 21, file: SmartCL.Components]").clientX-sr$5.Left$1,$Check(eventObj$12," in TW3CustomControl.CBMouseUp [line: 2298, column: 49, file: SmartCL.Components]").clientY-sr$5.Top$1);
   }
   /// procedure TW3CustomControl.CBMouseWheel(eventObj: JMouseWheelEvent)
   ///  [line: 2394, column: 28, file: SmartCL.Components]
   ,CBMouseWheel:function(Self, eventObj$13) {
      var wheelDelta$1 = 0;
      var handled$1 = {};
      handled$1.v = false;
      var sr$6 = {Bottom$1:0,Left$1:0,Right$1:0,Top$1:0};
      var shiftState$5 = null;
      var mousePos = {X$1:0,Y$1:0};
      if ($Check(Self," in TW3CustomControl.CBMouseWheel [line: 2400, column: 15, file: SmartCL.Components]").FOnMouseWheel) {
         if (eventObj$13.detail) {
            wheelDelta$1 = $Check(eventObj$13," in TW3CustomControl.CBMouseWheel [line: 2402, column: 30, file: SmartCL.Components]").detail*-40;
         } else {
            wheelDelta$1 = $Check(eventObj$13," in TW3CustomControl.CBMouseWheel [line: 2403, column: 33, file: SmartCL.Components]").wheelDelta;
         }
         sr$6 = TW3MovableControl.ScreenRect(Self);
         shiftState$5 = TShiftState.Current();
         TShiftState.SetMouseEvent(shiftState$5,eventObj$13);
         mousePos.X$1 = $Check(eventObj$13," in TW3CustomControl.CBMouseWheel [line: 2408, column: 28, file: SmartCL.Components]").clientX-sr$6.Left$1;
         mousePos.Y$1 = $Check(eventObj$13," in TW3CustomControl.CBMouseWheel [line: 2409, column: 28, file: SmartCL.Components]").clientY-sr$6.Top$1;
         TW3CustomControl.MouseWheel($Check(Self," in TW3CustomControl.CBMouseWheel [line: 2410, column: 5, file: SmartCL.Components]"),shiftState$5,wheelDelta$1,mousePos,handled$1);
         if (handled$1.v) {
            eventObj$13.preventDefault();
            eventObj$13.stopPropagation();
         }
      }
   }
   /// procedure TW3CustomControl.CMGestureChange()
   ///  [line: 2657, column: 28, file: SmartCL.Components]
   ,CMGestureChange:function(Self) {
      event.preventDefault();
      if ($Check(Self," in TW3CustomControl.CMGestureChange [line: 2660, column: 15, file: SmartCL.Components]").FOnGestureChange) {
         if ($Check(Self," in TW3CustomControl.CMGestureChange [line: 2662, column: 21, file: SmartCL.Components]").FGestureData) {
            TW3GestureData.Update$2($Check(Self," in TW3CustomControl.CMGestureChange [line: 2665, column: 7, file: SmartCL.Components]").FGestureData);
         } else {
            $Check(Self," in TW3CustomControl.CMGestureChange [line: 2663, column: 7, file: SmartCL.Components]").FGestureData = TObject.Create($New(TW3GestureData));
         }
         $CheckFunc($Check(Self," in TW3CustomControl.CMGestureChange [line: 2666, column: 5, file: SmartCL.Components]").FOnGestureChange," in TW3CustomControl.CMGestureChange [line: 2666, column: 21, file: SmartCL.Components]")(Self,$Check(Self," in TW3CustomControl.CMGestureChange [line: 2666, column: 27, file: SmartCL.Components]").FGestureData);
      }
   }
   /// procedure TW3CustomControl.CMGestureEnd()
   ///  [line: 2685, column: 28, file: SmartCL.Components]
   ,CMGestureEnd:function(Self) {
      event.preventDefault();
      if ($Check(Self," in TW3CustomControl.CMGestureEnd [line: 2688, column: 15, file: SmartCL.Components]").FOnGestureEnd) {
         if ($Check(Self," in TW3CustomControl.CMGestureEnd [line: 2690, column: 21, file: SmartCL.Components]").FGestureData) {
            TW3GestureData.Update$2($Check(Self," in TW3CustomControl.CMGestureEnd [line: 2693, column: 7, file: SmartCL.Components]").FGestureData);
         } else {
            $Check(Self," in TW3CustomControl.CMGestureEnd [line: 2691, column: 7, file: SmartCL.Components]").FGestureData = TObject.Create($New(TW3GestureData));
         }
         $CheckFunc($Check(Self," in TW3CustomControl.CMGestureEnd [line: 2694, column: 5, file: SmartCL.Components]").FOnGestureEnd," in TW3CustomControl.CMGestureEnd [line: 2694, column: 18, file: SmartCL.Components]")(Self,$Check(Self," in TW3CustomControl.CMGestureEnd [line: 2694, column: 24, file: SmartCL.Components]").FGestureData);
      }
   }
   /// procedure TW3CustomControl.CMGestureStart()
   ///  [line: 2629, column: 28, file: SmartCL.Components]
   ,CMGestureStart:function(Self) {
      event.preventDefault();
      if ($Check(Self," in TW3CustomControl.CMGestureStart [line: 2632, column: 15, file: SmartCL.Components]").FOnGestureStart) {
         if ($Check(Self," in TW3CustomControl.CMGestureStart [line: 2634, column: 21, file: SmartCL.Components]").FGestureData) {
            TW3GestureData.Update$2($Check(Self," in TW3CustomControl.CMGestureStart [line: 2637, column: 7, file: SmartCL.Components]").FGestureData);
         } else {
            $Check(Self," in TW3CustomControl.CMGestureStart [line: 2635, column: 7, file: SmartCL.Components]").FGestureData = TObject.Create($New(TW3GestureData));
         }
         $CheckFunc($Check(Self," in TW3CustomControl.CMGestureStart [line: 2638, column: 5, file: SmartCL.Components]").FOnGestureStart," in TW3CustomControl.CMGestureStart [line: 2638, column: 20, file: SmartCL.Components]")(Self,$Check(Self," in TW3CustomControl.CMGestureStart [line: 2638, column: 27, file: SmartCL.Components]").FGestureData);
      }
   }
   /// procedure TW3CustomControl.CMTouchBegins(eventObj: JTouchEvent)
   ///  [line: 2561, column: 28, file: SmartCL.Components]
   ,CMTouchBegins:function(Self, eventObj$14) {
      eventObj$14.preventDefault();
      if ($Check(Self," in TW3CustomControl.CMTouchBegins [line: 2564, column: 15, file: SmartCL.Components]").FOnTouchBegins) {
         if ($Check(Self," in TW3CustomControl.CMTouchBegins [line: 2566, column: 21, file: SmartCL.Components]").FTouchData) {
            TW3TouchData.Update$1($Check(Self," in TW3CustomControl.CMTouchBegins [line: 2569, column: 7, file: SmartCL.Components]").FTouchData,eventObj$14);
         } else {
            $Check(Self," in TW3CustomControl.CMTouchBegins [line: 2567, column: 7, file: SmartCL.Components]").FTouchData = TObject.Create($New(TW3TouchData));
         }
         $CheckFunc($Check(Self," in TW3CustomControl.CMTouchBegins [line: 2570, column: 5, file: SmartCL.Components]").FOnTouchBegins," in TW3CustomControl.CMTouchBegins [line: 2570, column: 19, file: SmartCL.Components]")(Self,$Check(Self," in TW3CustomControl.CMTouchBegins [line: 2570, column: 25, file: SmartCL.Components]").FTouchData);
      }
   }
   /// procedure TW3CustomControl.CMTouchEnds(eventObj: JTouchEvent)
   ///  [line: 2601, column: 28, file: SmartCL.Components]
   ,CMTouchEnds:function(Self, eventObj$15) {
      eventObj$15.preventDefault();
      if ($Check(Self," in TW3CustomControl.CMTouchEnds [line: 2604, column: 15, file: SmartCL.Components]").FOnTouchEnds) {
         if ($Check(Self," in TW3CustomControl.CMTouchEnds [line: 2606, column: 21, file: SmartCL.Components]").FTouchData) {
            TW3TouchData.Update$1($Check(Self," in TW3CustomControl.CMTouchEnds [line: 2609, column: 7, file: SmartCL.Components]").FTouchData,eventObj$15);
         } else {
            $Check(Self," in TW3CustomControl.CMTouchEnds [line: 2607, column: 7, file: SmartCL.Components]").FTouchData = TObject.Create($New(TW3TouchData));
         }
         $CheckFunc($Check(Self," in TW3CustomControl.CMTouchEnds [line: 2610, column: 5, file: SmartCL.Components]").FOnTouchEnds," in TW3CustomControl.CMTouchEnds [line: 2610, column: 17, file: SmartCL.Components]")(Self,$Check(Self," in TW3CustomControl.CMTouchEnds [line: 2610, column: 24, file: SmartCL.Components]").FTouchData);
      }
   }
   /// procedure TW3CustomControl.CMTouchMove(eventObj: JTouchEvent)
   ///  [line: 2581, column: 28, file: SmartCL.Components]
   ,CMTouchMove:function(Self, eventObj$16) {
      eventObj$16.preventDefault();
      if ($Check(Self," in TW3CustomControl.CMTouchMove [line: 2584, column: 15, file: SmartCL.Components]").FOnTouchMoves) {
         if ($Check(Self," in TW3CustomControl.CMTouchMove [line: 2586, column: 21, file: SmartCL.Components]").FTouchData) {
            TW3TouchData.Update$1($Check(Self," in TW3CustomControl.CMTouchMove [line: 2589, column: 7, file: SmartCL.Components]").FTouchData,eventObj$16);
         } else {
            $Check(Self," in TW3CustomControl.CMTouchMove [line: 2587, column: 7, file: SmartCL.Components]").FTouchData = TObject.Create($New(TW3TouchData));
         }
         $CheckFunc($Check(Self," in TW3CustomControl.CMTouchMove [line: 2590, column: 5, file: SmartCL.Components]").FOnTouchMoves," in TW3CustomControl.CMTouchMove [line: 2590, column: 18, file: SmartCL.Components]")(Self,$Check(Self," in TW3CustomControl.CMTouchMove [line: 2590, column: 25, file: SmartCL.Components]").FTouchData);
      }
   }
   /// procedure TW3CustomControl.ContextPopup(const mousePos: TPoint; var handled: Boolean)
   ///  [line: 2728, column: 28, file: SmartCL.Components]
   ,ContextPopup:function(Self, mousePos$1, handled$2) {
      if ($Check(Self," in TW3CustomControl.ContextPopup [line: 2730, column: 15, file: SmartCL.Components]").FOnContextPopup) {
         $CheckFunc($Check(Self," in TW3CustomControl.ContextPopup [line: 2731, column: 5, file: SmartCL.Components]").FOnContextPopup," in TW3CustomControl.ContextPopup [line: 2731, column: 20, file: SmartCL.Components]")(Self,mousePos$1,handled$2);
      }
   }
   /// constructor TW3CustomControl.Create(AOwner: TW3Component)
   ///  [line: 1977, column: 30, file: SmartCL.Components]
   ,Create$18:function(Self, AOwner$2) {
      TW3Component.Create$18(Self,AOwner$2);
      $Check(Self," in TW3CustomControl.Create [line: 1980, column: 4, file: SmartCL.Components]").FHandle["onclick"] = $Event1(Self,TW3CustomControl.CBClick$);
      return Self
   }
   /// procedure TW3CustomControl.FinalizeObject()
   ///  [line: 1998, column: 28, file: SmartCL.Components]
   ,FinalizeObject:function(Self) {
      TObject.Free($Check(Self," in TW3CustomControl.FinalizeObject [line: 2000, column: 3, file: SmartCL.Components]").FFont);
      TObject.Free($Check(Self," in TW3CustomControl.FinalizeObject [line: 2001, column: 3, file: SmartCL.Components]").FClassNames);
      TObject.Free($Check(Self," in TW3CustomControl.FinalizeObject [line: 2002, column: 3, file: SmartCL.Components]").FScrollInfo);
      TObject.Free($Check(Self," in TW3CustomControl.FinalizeObject [line: 2003, column: 3, file: SmartCL.Components]").FTouchData);
      TObject.Free($Check(Self," in TW3CustomControl.FinalizeObject [line: 2004, column: 3, file: SmartCL.Components]").FGestureData);
      TW3MovableControl.FinalizeObject(Self);
   }
   /// function TW3CustomControl.GetBorderRadius() : Integer
   ///  [line: 2765, column: 27, file: SmartCL.Components]
   ,GetBorderRadius:function(Self) {
      return w3_getStyleAsInt($Check(Self," in TW3CustomControl.GetBorderRadius [line: 2767, column: 30, file: SmartCL.Components]").FHandle,"bordertopleftRadius");
   }
   /// function TW3CustomControl.GetChildrenSortedByYPos() : TW3ComponentArray
   ///  [line: 2170, column: 27, file: SmartCL.Components]
   ,GetChildrenSortedByYPos:function(Self) {
      var Result = [];
      var mCount = 0;
      var x$2 = 0;
      var mAltered = false;
      var mObj$1 = null;
      var mLast = null;
      var mCurrent = null;
      Result.length=0;
      mCount = TW3Component.GetChildCount(Self);
      if (mCount>0) {
         var $temp3;
         for(x$2 = 0,$temp3 = mCount;x$2<$temp3;x$2++) {
            mObj$1 = TW3Component.GetChildObject(Self,x$2);
            if ($Is(mObj$1,TW3CustomControl)) {
               Result.push(mObj$1);
            }
         }
         if (Result.length>1) {
            do {
               mAltered = false;
               var $temp4;
               for(x$2 = 1,$temp4 = mCount;x$2<$temp4;x$2++) {
                  mLast = $As($DIdxR(Result,x$2-1," in TW3CustomControl.GetChildrenSortedByYPos [line: 2199, column: 50, file: SmartCL.Components]"),TW3CustomControl);
                  mCurrent = $As($DIdxR(Result,x$2," in TW3CustomControl.GetChildrenSortedByYPos [line: 2200, column: 49, file: SmartCL.Components]"),TW3CustomControl);
                  if (TW3MovableControl.GetTop($Check(mCurrent," in TW3CustomControl.GetChildrenSortedByYPos [line: 2201, column: 23, file: SmartCL.Components]"))<TW3MovableControl.GetTop($Check(mLast," in TW3CustomControl.GetChildrenSortedByYPos [line: 2201, column: 35, file: SmartCL.Components]"))) {
                     $ArraySwapChk(Result,(x$2-1),x$2," in TW3CustomControl.GetChildrenSortedByYPos [line: 2203, column: 20, file: SmartCL.Components]");
                     mAltered = true;
                  }
               }
            } while (!(mAltered==false));
         }
      }
      return Result
   }
   /// function TW3CustomControl.GetClassNames() : TW3CSSClassStyleNames
   ///  [line: 2043, column: 27, file: SmartCL.Components]
   ,GetClassNames:function(Self) {
      var Result = null;
      if ($Check(Self," in TW3CustomControl.GetClassNames [line: 2045, column: 6, file: SmartCL.Components]").FClassNames===null) {
         $Check(Self," in TW3CustomControl.GetClassNames [line: 2046, column: 5, file: SmartCL.Components]").FClassNames = TW3OwnedObject.Create$4$($New(TW3CSSClassStyleNames),Self);
      }
      Result = $Check(Self," in TW3CustomControl.GetClassNames [line: 2047, column: 13, file: SmartCL.Components]").FClassNames;
      return Result
   }
   /// function TW3CustomControl.GetEnabled() : Boolean
   ///  [line: 2057, column: 27, file: SmartCL.Components]
   ,GetEnabled:function(Self) {
      return $Check(Self," in TW3CustomControl.GetEnabled [line: 2059, column: 13, file: SmartCL.Components]").FHandle.disabled!=true;
   }
   /// function TW3CustomControl.GetFont() : TW3ControlFont
   ///  [line: 2026, column: 27, file: SmartCL.Components]
   ,GetFont:function(Self) {
      var Result = null;
      if ($Check(Self," in TW3CustomControl.GetFont [line: 2028, column: 6, file: SmartCL.Components]").FFont===null) {
         $Check(Self," in TW3CustomControl.GetFont [line: 2029, column: 5, file: SmartCL.Components]").FFont = TW3ControlFont.Create$36($New(TW3ControlFont),Self);
      }
      Result = $Check(Self," in TW3CustomControl.GetFont [line: 2030, column: 13, file: SmartCL.Components]").FFont;
      return Result
   }
   /// function TW3CustomControl.GetHasFocus() : Boolean
   ///  [line: 2241, column: 27, file: SmartCL.Components]
   ,GetHasFocus:function(Self) {
      var Result = false;
      if ($Check(Self," in TW3CustomControl.GetHasFocus [line: 2243, column: 7, file: SmartCL.Components]").FHandle) {
         Result = document.activeElement==$Check(Self," in TW3CustomControl.GetHasFocus [line: 2244, column: 51, file: SmartCL.Components]").FHandle;
      }
      return Result
   }
   /// function TW3CustomControl.GetMaxZIndex() : Integer
   ///  [line: 2148, column: 27, file: SmartCL.Components]
   ,GetMaxZIndex:function(Self) {
      var Result = 0;
      var iChild = 0;
      var obj = null;
      var objZIndex = 0;
      Result = 0;
      var $temp5;
      for(iChild = 0,$temp5 = TW3Component.GetChildCount(Self);iChild<$temp5;iChild++) {
         obj = TW3Component.GetChildObject(Self,iChild);
         if (((obj!==null)&&$Is(obj,TW3CustomControl))&&$Check(obj," in TW3CustomControl.GetMaxZIndex [line: 2153, column: 61, file: SmartCL.Components]").FHandle) {
            objZIndex = TW3CustomControl.GetZIndexAsInt($As(obj,TW3CustomControl),0);
            if (objZIndex>Result) {
               Result = objZIndex;
            }
            objZIndex = TW3CustomControl.GetMaxZIndex($As(obj,TW3CustomControl));
            if (objZIndex>Result) {
               Result = objZIndex;
            }
         }
      }
      return Result
   }
   /// function TW3CustomControl.GetScrollInfo() : TW3ScrollInfo
   ///  [line: 2050, column: 27, file: SmartCL.Components]
   ,GetScrollInfo:function(Self) {
      var Result = null;
      if ($Check(Self," in TW3CustomControl.GetScrollInfo [line: 2052, column: 6, file: SmartCL.Components]").FScrollInfo===null) {
         $Check(Self," in TW3CustomControl.GetScrollInfo [line: 2053, column: 5, file: SmartCL.Components]").FScrollInfo = TW3OwnedObject.Create$4$($New(TW3ScrollInfo),Self);
      }
      Result = $Check(Self," in TW3CustomControl.GetScrollInfo [line: 2054, column: 13, file: SmartCL.Components]").FScrollInfo;
      return Result
   }
   /// function TW3CustomControl.GetStyleClass() : String
   ///  [line: 2213, column: 27, file: SmartCL.Components]
   ,GetStyleClass:function(Self) {
      return w3_getAttribAsStr($Check(Self," in TW3CustomControl.GetStyleClass [line: 2215, column: 31, file: SmartCL.Components]").FHandle,"class");
   }
   /// function TW3CustomControl.GetZIndexAsInt(default: Integer = 0) : Integer
   ///  [line: 2091, column: 27, file: SmartCL.Components]
   ,GetZIndexAsInt:function(Self, default$1) {
      var Result = 0;
      var mData$3;
      Result = default$1;
      mData$3 = $Check(Self," in TW3CustomControl.GetZIndexAsInt [line: 2094, column: 24, file: SmartCL.Components]").FHandle.style["zIndex"];
      if ($Check(Self," in TW3CustomControl.GetZIndexAsInt [line: 2095, column: 7, file: SmartCL.Components]").FHandle) {
         if (TVariant.IsNumber(mData$3)) {
            Result = parseInt(mData$3,10);
         } else if (TVariant.IsString(mData$3)) {
            Result = parseInt(mData$3,10);
            if (isNaN(Result)) {
               Result = default$1;
            }
         }
      }
      return Result
   }
   /// function TW3CustomControl.GetZoom() : Float
   ///  [line: 2033, column: 27, file: SmartCL.Components]
   ,GetZoom:function(Self) {
      return w3_getStyleAsFloat($Check(Self," in TW3CustomControl.GetZoom [line: 2035, column: 32, file: SmartCL.Components]").FHandle,"zoom");
   }
   /// procedure TW3CustomControl.InitializeCapture()
   ///  [line: 36, column: 34, file: SmartCL.MouseCapture]
   ,InitializeCapture:function(Self) {
      var doc = undefined;
      doc = document;
      doc.addEventListener("mousedown",function (evt) {
         if (vCaptureControl!==null) {
            TW3CustomControl.CBMouseDown$($Check(vCaptureControl," in  [line: 42, column: 29, file: SmartCL.MouseCapture]"),evt);
            evt.stopImmediatePropagation();
         }
      },true);
      doc.addEventListener("mousemove",function (evt$1) {
         if (vCaptureControl!==null) {
            TW3CustomControl.CBMouseMove$($Check(vCaptureControl," in  [line: 49, column: 29, file: SmartCL.MouseCapture]"),evt$1);
            evt$1.stopImmediatePropagation();
         }
      },true);
      doc.addEventListener("mouseup",function (evt$2) {
         if (vCaptureControl!==null) {
            TW3CustomControl.CBMouseUp$($Check(vCaptureControl," in  [line: 56, column: 29, file: SmartCL.MouseCapture]"),evt$2);
            evt$2.stopImmediatePropagation();
         }
         vCaptureControl = null;
      },true);
      doc.addEventListener("mouseover",function (evt$3) {
         if (vCaptureControl!==null) {
            TW3CustomControl.CBMouseEnter($Check(vCaptureControl," in  [line: 64, column: 29, file: SmartCL.MouseCapture]"),evt$3);
            evt$3.stopImmediatePropagation();
         }
      },true);
      doc.addEventListener("mouseout",function (evt$4) {
         if (vCaptureControl!==null) {
            TW3CustomControl.CBMouseExit($Check(vCaptureControl," in  [line: 71, column: 29, file: SmartCL.MouseCapture]"),evt$4);
            evt$4.stopImmediatePropagation();
         }
      },true);
      doc.addEventListener("mousewheel",function (evt$5) {
         if (vCaptureControl!==null) {
            TW3CustomControl.CBMouseWheel($Check(vCaptureControl," in  [line: 78, column: 29, file: SmartCL.MouseCapture]"),evt$5);
            evt$5.stopImmediatePropagation();
         }
      },true);
      doc.addEventListener("onclick",function (evt$6) {
         if (vCaptureControl!==null) {
            TW3CustomControl.CBClick$($Check(vCaptureControl," in  [line: 85, column: 29, file: SmartCL.MouseCapture]"),evt$6);
            evt$6.stopImmediatePropagation();
         }
      },true);
      doc.addEventListener("ondblclick",function (evt$7) {
         if (vCaptureControl!==null) {
            TW3CustomControl.CBDblClick($Check(vCaptureControl," in  [line: 92, column: 29, file: SmartCL.MouseCapture]"),evt$7);
            evt$7.stopImmediatePropagation();
         }
      },true);
      vCaptureInitialized = true;
   }
   /// procedure TW3CustomControl.InitializeObject()
   ///  [line: 1983, column: 28, file: SmartCL.Components]
   ,InitializeObject:function(Self) {
      TW3MovableControl.InitializeObject(Self);
      $Check(Self," in TW3CustomControl.InitializeObject [line: 1988, column: 3, file: SmartCL.Components]").FNoBehavior = $Event0(Self,TW3Component.CBNoBehavior);
      w3_bind2($Check(Self," in TW3CustomControl.InitializeObject [line: 1992, column: 12, file: SmartCL.Components]").FHandle,"onselectstart",$Event0(Self,TW3Component.CBNoBehavior));
      w3_bind2($Check(Self," in TW3CustomControl.InitializeObject [line: 1993, column: 12, file: SmartCL.Components]").FHandle,"onfocus",$Event0(Self,TW3CustomControl.CBFocused));
      w3_bind2($Check(Self," in TW3CustomControl.InitializeObject [line: 1994, column: 12, file: SmartCL.Components]").FHandle,"onblur",$Event0(Self,TW3CustomControl.CBLostFocus));
   }
   /// procedure TW3CustomControl.Invalidate()
   ///  [line: 2734, column: 28, file: SmartCL.Components]
   ,Invalidate:function(Self) {
      /* null */
   }
   /// procedure TW3CustomControl.LayoutChildren()
   ///  [line: 2739, column: 28, file: SmartCL.Components]
   ,LayoutChildren:function(Self) {
      var x$3 = 0;
      var mChild$1 = null;
      TW3TagObj.BeginUpdate(Self);
      try {
         var $temp6;
         for(x$3 = 0,$temp6 = TW3Component.GetChildCount(Self);x$3<$temp6;x$3++) {
            mChild$1 = TW3Component.GetChildObject(Self,x$3);
            if ($Is(mChild$1,TW3CustomControl)) {
               setTimeout($Event0($As(mChild$1,TW3CustomControl),TW3CustomControl.LayoutChildren),10);
            }
         }
      } finally {
         TW3MovableControl.SetWasSized(Self);
         TW3TagObj.EndUpdate($Check(Self," in TW3CustomControl.LayoutChildren [line: 2754, column: 5, file: SmartCL.Components]"));
      }
   }
   /// procedure TW3CustomControl.MouseDown(button: TMouseButton; shiftState: TShiftState; x: Integer; y: Integer)
   ///  [line: 2279, column: 28, file: SmartCL.Components]
   ,MouseDown:function(Self, button$3, shiftState$6, x$4, y) {
      if ($Check(Self," in TW3CustomControl.MouseDown [line: 2281, column: 15, file: SmartCL.Components]").FOnMouseDown) {
         $CheckFunc($Check(Self," in TW3CustomControl.MouseDown [line: 2282, column: 5, file: SmartCL.Components]").FOnMouseDown," in TW3CustomControl.MouseDown [line: 2282, column: 17, file: SmartCL.Components]")(Self,button$3,shiftState$6,x$4,y);
      }
   }
   /// procedure TW3CustomControl.MouseEnter(shiftState: TShiftState; x: Integer; y: Integer)
   ///  [line: 2343, column: 28, file: SmartCL.Components]
   ,MouseEnter:function(Self, shiftState$7, x$5, y$1) {
      if ($Check(Self," in TW3CustomControl.MouseEnter [line: 2345, column: 15, file: SmartCL.Components]").FOnMouseEnter) {
         $CheckFunc($Check(Self," in TW3CustomControl.MouseEnter [line: 2346, column: 6, file: SmartCL.Components]").FOnMouseEnter," in TW3CustomControl.MouseEnter [line: 2346, column: 19, file: SmartCL.Components]")(Self,shiftState$7,x$5,y$1);
      }
   }
   /// procedure TW3CustomControl.MouseExit(shiftState: TShiftState; x: Integer; y: Integer)
   ///  [line: 2367, column: 28, file: SmartCL.Components]
   ,MouseExit:function(Self, shiftState$8, x$6, y$2) {
      if ($Check(Self," in TW3CustomControl.MouseExit [line: 2369, column: 15, file: SmartCL.Components]").FOnMouseExit) {
         $CheckFunc($Check(Self," in TW3CustomControl.MouseExit [line: 2370, column: 6, file: SmartCL.Components]").FOnMouseExit," in TW3CustomControl.MouseExit [line: 2370, column: 18, file: SmartCL.Components]")(Self,shiftState$8,x$6,y$2);
      }
   }
   /// procedure TW3CustomControl.MouseMove(shiftState: TShiftState; x: Integer; y: Integer)
   ///  [line: 2321, column: 28, file: SmartCL.Components]
   ,MouseMove:function(Self, shiftState$9, x$7, y$3) {
      if ($Check(Self," in TW3CustomControl.MouseMove [line: 2323, column: 15, file: SmartCL.Components]").FOnMouseMove) {
         $CheckFunc($Check(Self," in TW3CustomControl.MouseMove [line: 2324, column: 5, file: SmartCL.Components]").FOnMouseMove," in TW3CustomControl.MouseMove [line: 2324, column: 17, file: SmartCL.Components]")(Self,shiftState$9,x$7,y$3);
      }
   }
   /// procedure TW3CustomControl.MouseUp(button: TMouseButton; shiftState: TShiftState; x: Integer; y: Integer)
   ///  [line: 2301, column: 28, file: SmartCL.Components]
   ,MouseUp:function(Self, button$4, shiftState$10, x$8, y$4) {
      if ($Check(Self," in TW3CustomControl.MouseUp [line: 2303, column: 15, file: SmartCL.Components]").FOnMouseUp) {
         $CheckFunc($Check(Self," in TW3CustomControl.MouseUp [line: 2304, column: 5, file: SmartCL.Components]").FOnMouseUp," in TW3CustomControl.MouseUp [line: 2304, column: 15, file: SmartCL.Components]")(Self,button$4,shiftState$10,x$8,y$4);
      }
   }
   /// procedure TW3CustomControl.MouseWheel(shift: TShiftState; wheelDelta: Integer; const mousePos: TPoint; var handled: Boolean)
   ///  [line: 2418, column: 28, file: SmartCL.Components]
   ,MouseWheel:function(Self, shift, wheelDelta$2, mousePos$2, handled$3) {
      if ($Check(Self," in TW3CustomControl.MouseWheel [line: 2421, column: 15, file: SmartCL.Components]").FOnMouseWheel) {
         $CheckFunc($Check(Self," in TW3CustomControl.MouseWheel [line: 2422, column: 5, file: SmartCL.Components]").FOnMouseWheel," in TW3CustomControl.MouseWheel [line: 2422, column: 18, file: SmartCL.Components]")(Self,shift,wheelDelta$2,mousePos$2,handled$3);
      }
   }
   /// procedure TW3CustomControl.ReleaseCapture()
   ///  [line: 112, column: 28, file: SmartCL.MouseCapture]
   ,ReleaseCapture:function(Self) {
      --$Check(Self," in TW3CustomControl.ReleaseCapture [line: 114, column: 8, file: SmartCL.MouseCapture]").FMouseCaptured;
      if (!$Check(Self," in TW3CustomControl.ReleaseCapture [line: 115, column: 7, file: SmartCL.MouseCapture]").FMouseCaptured) {
         if ($Check(Self," in TW3CustomControl.ReleaseCapture [line: 116, column: 11, file: SmartCL.MouseCapture]").FHandle.releaseCapture) {
            $Check(Self," in TW3CustomControl.ReleaseCapture [line: 117, column: 16, file: SmartCL.MouseCapture]").FHandle.releaseCapture();
         }
         vCaptureControl = null;
      } else if ($Check(Self," in TW3CustomControl.ReleaseCapture [line: 119, column: 16, file: SmartCL.MouseCapture]").FMouseCaptured<0) {
         $Check(Self," in TW3CustomControl.ReleaseCapture [line: 120, column: 7, file: SmartCL.MouseCapture]").FMouseCaptured = 0;
      }
   }
   /// procedure TW3CustomControl.SendToBack()
   ///  [line: 2109, column: 28, file: SmartCL.Components]
   ,SendToBack:function(Self) {
      var iChild$1 = 0;
      var obj$1 = null;
      var pushUp = 0;
      var minZIndex = 0;
      var objZIndex$1 = 0;
      var objZIndex$2 = 0;
      if ($Check(Self," in TW3CustomControl.SendToBack [line: 2117, column: 7, file: SmartCL.Components]").FHandle) {
         minZIndex = 99999;
         if (($Check(Self," in TW3CustomControl.SendToBack [line: 2119, column: 17, file: SmartCL.Components]").FParent!==null)&&$Is($Check(Self," in TW3CustomControl.SendToBack [line: 2119, column: 30, file: SmartCL.Components]").FParent,TW3Component)) {
            var $temp7;
            for(iChild$1 = 0,$temp7 = TW3Component.GetChildCount($Check(Self," in TW3CustomControl.SendToBack [line: 2120, column: 26, file: SmartCL.Components]").FParent);iChild$1<$temp7;iChild$1++) {
               obj$1 = TW3Component.GetChildObject($Check(Self," in TW3CustomControl.SendToBack [line: 2121, column: 16, file: SmartCL.Components]").FParent,iChild$1);
               if (((obj$1!==null)&&$Is(obj$1,TW3CustomControl))&&$Check(obj$1," in TW3CustomControl.SendToBack [line: 2122, column: 65, file: SmartCL.Components]").FHandle) {
                  objZIndex$1 = TW3CustomControl.GetZIndexAsInt($As(obj$1,TW3CustomControl),99999);
                  if (objZIndex$1<minZIndex) {
                     minZIndex = objZIndex$1;
                  }
               }
            }
         }
         if (minZIndex==99999) {
            minZIndex = 0;
         }
         if (($Check(Self," in TW3CustomControl.SendToBack [line: 2131, column: 17, file: SmartCL.Components]").FParent!==null)&&$Is($Check(Self," in TW3CustomControl.SendToBack [line: 2131, column: 30, file: SmartCL.Components]").FParent,TW3Component)) {
            if (minZIndex<0) {
               pushUp = -minZIndex;
            } else {
               pushUp = 1;
            }
            var $temp8;
            for(iChild$1 = 0,$temp8 = TW3Component.GetChildCount($Check(Self," in TW3CustomControl.SendToBack [line: 2133, column: 26, file: SmartCL.Components]").FParent);iChild$1<$temp8;iChild$1++) {
               obj$1 = TW3Component.GetChildObject($Check(Self," in TW3CustomControl.SendToBack [line: 2134, column: 16, file: SmartCL.Components]").FParent,iChild$1);
               if ((((obj$1!==null)&&(obj$1!==Self))&&$Is(obj$1,TW3CustomControl))&&$Check(obj$1," in TW3CustomControl.SendToBack [line: 2135, column: 83, file: SmartCL.Components]").FHandle) {
                  objZIndex$2 = TW3CustomControl.GetZIndexAsInt($As(obj$1,TW3CustomControl),-1);
                  if (objZIndex$2<0) {
                     $Check(obj$1," in TW3CustomControl.SendToBack [line: 2138, column: 23, file: SmartCL.Components]").FHandle.style.zIndex = (minZIndex+pushUp+1);
                  } else {
                     $Check(obj$1," in TW3CustomControl.SendToBack [line: 2140, column: 23, file: SmartCL.Components]").FHandle.style.zIndex = (objZIndex$2+pushUp);
                  }
               }
            }
         }
         $Check(Self," in TW3CustomControl.SendToBack [line: 2144, column: 11, file: SmartCL.Components]").FHandle.style.zIndex = ((minZIndex+pushUp)-1);
      }
   }
   /// procedure TW3CustomControl.SetAngle(aValue: Float)
   ///  [line: 2223, column: 28, file: SmartCL.Components]
   ,SetAngle:function(Self, aValue$23) {
      var mStyle = "";
      if (aValue$23!=$Check(Self," in TW3CustomControl.SetAngle [line: 2227, column: 14, file: SmartCL.Components]").FAngle) {
         $Check(Self," in TW3CustomControl.SetAngle [line: 2229, column: 5, file: SmartCL.Components]").FAngle = aValue$23;
         mStyle = "rotate("+FloatToStr$_Float_Integer_(aValue$23,2)+"deg)";
         w3_setStyle($Check(Self," in TW3CustomControl.SetAngle [line: 2231, column: 17, file: SmartCL.Components]").FHandle,w3_CSSPrefix("Transform"),mStyle);
      }
   }
   /// procedure TW3CustomControl.SetBorderRadius(aNewRadius: Integer)
   ///  [line: 2776, column: 28, file: SmartCL.Components]
   ,SetBorderRadius:function(Self, aNewRadius) {
      TW3TagObj.BeginUpdate(Self);
      w3_setStyle($Check(Self," in TW3CustomControl.SetBorderRadius [line: 2779, column: 15, file: SmartCL.Components]").FHandle,"borderRadius",TInteger.ToPxStr(aNewRadius));
      TW3MovableControl.SetWasSized(Self);
      TW3TagObj.EndUpdate($Check(Self," in TW3CustomControl.SetBorderRadius [line: 2781, column: 3, file: SmartCL.Components]"));
   }
   /// procedure TW3CustomControl.SetCapture()
   ///  [line: 100, column: 28, file: SmartCL.MouseCapture]
   ,SetCapture:function(Self) {
      if (!$Check(Self," in TW3CustomControl.SetCapture [line: 102, column: 7, file: SmartCL.MouseCapture]").FMouseCaptured) {
         if ($Check(Self," in TW3CustomControl.SetCapture [line: 103, column: 11, file: SmartCL.MouseCapture]").FHandle.setCapture) {
            $Check(Self," in TW3CustomControl.SetCapture [line: 104, column: 16, file: SmartCL.MouseCapture]").FHandle.setCapture(true);
         } else if (!vCaptureInitialized) {
            TW3CustomControl.InitializeCapture($Check(Self," in TW3CustomControl.SetCapture [line: 106, column: 10, file: SmartCL.MouseCapture]").ClassType);
         }
         vCaptureControl = Self;
      }
      ++$Check(Self," in TW3CustomControl.SetCapture [line: 109, column: 8, file: SmartCL.MouseCapture]").FMouseCaptured;
   }
   /// procedure TW3CustomControl.SetEnabled(aValue: Boolean)
   ///  [line: 2062, column: 28, file: SmartCL.Components]
   ,SetEnabled:function(Self, aValue$24) {
      $Check(Self," in TW3CustomControl.SetEnabled [line: 2068, column: 9, file: SmartCL.Components]").FHandle.disabled = (!aValue$24);
   }
   /// procedure TW3CustomControl.SetFocus()
   ///  [line: 2235, column: 28, file: SmartCL.Components]
   ,SetFocus:function(Self) {
      if ($Check(Self," in TW3CustomControl.SetFocus [line: 2237, column: 7, file: SmartCL.Components]").FHandle) {
         $Check(Self," in TW3CustomControl.SetFocus [line: 2238, column: 11, file: SmartCL.Components]").FHandle.focus();
      }
   }
   /// procedure TW3CustomControl.SetStyleClass(aStyle: String)
   ///  [line: 2218, column: 28, file: SmartCL.Components]
   ,SetStyleClass:function(Self, aStyle) {
      w3_setAttrib($Check(Self," in TW3CustomControl.SetStyleClass [line: 2220, column: 16, file: SmartCL.Components]").FHandle,"class",aStyle);
   }
   /// procedure TW3CustomControl.SetZoom(aValue: Float)
   ///  [line: 2038, column: 28, file: SmartCL.Components]
   ,SetZoom:function(Self, aValue$25) {
      w3_setStyle($Check(Self," in TW3CustomControl.SetZoom [line: 2040, column: 15, file: SmartCL.Components]").FHandle,"zoom",aValue$25);
   }
   /// procedure TW3CustomControl.StyleTagObject()
   ///  [line: 2019, column: 28, file: SmartCL.Components]
   ,StyleTagObject:function(Self) {
      TW3TagObj.StyleTagObject(Self);
      TW3CustomControl.SetStyleClass(Self,TObject.ClassName($Check(Self," in TW3CustomControl.StyleTagObject [line: 2022, column: 17, file: SmartCL.Components]").ClassType));
      TW3MovableControl.SetVisible($Check(Self," in TW3CustomControl.StyleTagObject [line: 2023, column: 3, file: SmartCL.Components]"),true);
   }
   /// procedure TW3CustomControl._setAnimationBegins(const aValue: TAnimationBeginsEvent)
   ///  [line: 2500, column: 28, file: SmartCL.Components]
   ,_setAnimationBegins:function(Self, aValue$26) {
      if (aValue$26) {
         $Check(Self," in TW3CustomControl._setAnimationBegins [line: 2503, column: 6, file: SmartCL.Components]").FHandle[w3_CSSPrefix("AnimationStart")] = $Event1(Self,TW3CustomControl.CBAnimationBegins);
      } else {
         $Check(Self," in TW3CustomControl._setAnimationBegins [line: 2505, column: 6, file: SmartCL.Components]").FHandle[w3_CSSPrefix("AnimationStart")] = $Check(Self," in TW3CustomControl._setAnimationBegins [line: 2505, column: 50, file: SmartCL.Components]").FNoBehavior;
      }
      $Check(Self," in TW3CustomControl._setAnimationBegins [line: 2506, column: 3, file: SmartCL.Components]").FOnAnimationBegins = aValue$26;
   }
   /// procedure TW3CustomControl._setAnimationEnds(const aValue: TAnimationEndsEvent)
   ///  [line: 2515, column: 28, file: SmartCL.Components]
   ,_setAnimationEnds:function(Self, aValue$27) {
      if (aValue$27) {
         $Check(Self," in TW3CustomControl._setAnimationEnds [line: 2518, column: 6, file: SmartCL.Components]").FHandle[w3_CSSPrefix("AnimationEnd")] = $Event1(Self,TW3CustomControl.CBAnimationEnds);
      } else {
         $Check(Self," in TW3CustomControl._setAnimationEnds [line: 2520, column: 6, file: SmartCL.Components]").FHandle[w3_CSSPrefix("AnimationEnd")] = $Check(Self," in TW3CustomControl._setAnimationEnds [line: 2520, column: 48, file: SmartCL.Components]").FNoBehavior;
      }
      $Check(Self," in TW3CustomControl._setAnimationEnds [line: 2521, column: 3, file: SmartCL.Components]").FOnAnimationEnds = aValue$27;
   }
   /// procedure TW3CustomControl._setChanged(const aValue: TChangedEvent)
   ///  [line: 2530, column: 28, file: SmartCL.Components]
   ,_setChanged:function(Self, aValue$28) {
      if (aValue$28) {
         $Check(Self," in TW3CustomControl._setChanged [line: 2533, column: 6, file: SmartCL.Components]").FHandle["onchange"] = $Event1(Self,TW3CustomControl.CBChanged);
      } else {
         $Check(Self," in TW3CustomControl._setChanged [line: 2535, column: 6, file: SmartCL.Components]").FHandle["onchange"] = $Check(Self," in TW3CustomControl._setChanged [line: 2535, column: 30, file: SmartCL.Components]").FNoBehavior;
      }
      $Check(Self," in TW3CustomControl._setChanged [line: 2536, column: 3, file: SmartCL.Components]").FOnChanged = aValue$28;
   }
   /// procedure TW3CustomControl._setContextPopup(const aValue: TContextPopupEvent)
   ///  [line: 2707, column: 28, file: SmartCL.Components]
   ,_setContextPopup:function(Self, aValue$29) {
      var mObj$2 = undefined;
      mObj$2 = $Check(Self," in TW3CustomControl._setContextPopup [line: 2709, column: 15, file: SmartCL.Components]").FHandle;
      if (aValue$29) {
         mObj$2["oncontextmenu"] = $Event1(Self,TW3CustomControl.CBContextPopup);
      } else {
         mObj$2["oncontextmenu"] = $Check(Self," in TW3CustomControl._setContextPopup [line: 2713, column: 31, file: SmartCL.Components]").FNoBehavior;
      }
      $Check(Self," in TW3CustomControl._setContextPopup [line: 2714, column: 3, file: SmartCL.Components]").FOnContextPopup = aValue$29;
   }
   /// procedure TW3CustomControl._setGestureChange(aValue: TGestureChangeEvent)
   ///  [line: 2642, column: 28, file: SmartCL.Components]
   ,_setGestureChange:function(Self, aValue$30) {
      if ($Check(Self," in TW3CustomControl._setGestureChange [line: 2644, column: 15, file: SmartCL.Components]").FOnGestureChange) {
         w3_RemoveEvent($Check(Self," in TW3CustomControl._setGestureChange [line: 2646, column: 20, file: SmartCL.Components]").FHandle,"gesturechange",$Event0(Self,TW3CustomControl.CMGestureChange),true);
         $Check(Self," in TW3CustomControl._setGestureChange [line: 2647, column: 5, file: SmartCL.Components]").FOnGestureChange = null;
      }
      if (aValue$30) {
         $Check(Self," in TW3CustomControl._setGestureChange [line: 2652, column: 5, file: SmartCL.Components]").FOnGestureChange = aValue$30;
         w3_AddEvent($Check(Self," in TW3CustomControl._setGestureChange [line: 2653, column: 17, file: SmartCL.Components]").FHandle,"gesturechange",$Event0(Self,TW3CustomControl.CMGestureChange),true);
      }
   }
   /// procedure TW3CustomControl._setGestureEnd(aValue: TGestureEndEvent)
   ///  [line: 2670, column: 28, file: SmartCL.Components]
   ,_setGestureEnd:function(Self, aValue$31) {
      if ($Check(Self," in TW3CustomControl._setGestureEnd [line: 2672, column: 15, file: SmartCL.Components]").FOnGestureEnd) {
         w3_RemoveEvent($Check(Self," in TW3CustomControl._setGestureEnd [line: 2674, column: 20, file: SmartCL.Components]").FHandle,"gesturestart",$Event0(Self,TW3CustomControl.CMGestureEnd),true);
         $Check(Self," in TW3CustomControl._setGestureEnd [line: 2675, column: 5, file: SmartCL.Components]").FOnGestureEnd = null;
      }
      if (aValue$31) {
         $Check(Self," in TW3CustomControl._setGestureEnd [line: 2680, column: 5, file: SmartCL.Components]").FOnGestureEnd = aValue$31;
         w3_AddEvent($Check(Self," in TW3CustomControl._setGestureEnd [line: 2681, column: 17, file: SmartCL.Components]").FHandle,"gestureend",$Event0(Self,TW3CustomControl.CMGestureEnd),true);
      }
   }
   /// procedure TW3CustomControl._setGestureStart(aValue: TGestureStartEvent)
   ///  [line: 2614, column: 28, file: SmartCL.Components]
   ,_setGestureStart:function(Self, aValue$32) {
      if ($Check(Self," in TW3CustomControl._setGestureStart [line: 2616, column: 15, file: SmartCL.Components]").FOnGestureStart) {
         w3_RemoveEvent($Check(Self," in TW3CustomControl._setGestureStart [line: 2618, column: 20, file: SmartCL.Components]").FHandle,"gesturestart",$Event0(Self,TW3CustomControl.CMGestureStart),true);
         $Check(Self," in TW3CustomControl._setGestureStart [line: 2619, column: 5, file: SmartCL.Components]").FOnGestureStart = null;
      }
      if (aValue$32) {
         $Check(Self," in TW3CustomControl._setGestureStart [line: 2624, column: 5, file: SmartCL.Components]").FOnGestureStart = aValue$32;
         w3_AddEvent($Check(Self," in TW3CustomControl._setGestureStart [line: 2625, column: 17, file: SmartCL.Components]").FHandle,"gesturestart",$Event0(Self,TW3CustomControl.CMGestureStart),true);
      }
   }
   /// procedure TW3CustomControl._setGotFocus(const aValue: TGotFocusEvent)
   ///  [line: 2247, column: 28, file: SmartCL.Components]
   ,_setGotFocus:function(Self, aValue$33) {
      $Check(Self," in TW3CustomControl._setGotFocus [line: 2253, column: 3, file: SmartCL.Components]").FOnGotFocus = aValue$33;
   }
   /// procedure TW3CustomControl._setKeyDown(const aValue: TKeyDownEvent)
   ///  [line: 2461, column: 28, file: SmartCL.Components]
   ,_setKeyDown:function(Self, aValue$34) {
      $Check(Self," in TW3CustomControl._setKeyDown [line: 2463, column: 4, file: SmartCL.Components]").FHandle["onkeydown"] = $Event1(Self,TW3CustomControl.CBKeyDown$);
      $Check(Self," in TW3CustomControl._setKeyDown [line: 2464, column: 3, file: SmartCL.Components]").FOnKeyDown = aValue$34;
   }
   /// procedure TW3CustomControl._setKeyPress(const aValue: TKeyPressEvent)
   ///  [line: 2485, column: 28, file: SmartCL.Components]
   ,_setKeyPress:function(Self, aValue$35) {
      if (aValue$35) {
         $Check(Self," in TW3CustomControl._setKeyPress [line: 2488, column: 6, file: SmartCL.Components]").FHandle["onkeypress"] = $Event1(Self,TW3CustomControl.CBKeyPress);
      } else {
         $Check(Self," in TW3CustomControl._setKeyPress [line: 2490, column: 6, file: SmartCL.Components]").FHandle["onkeypress"] = $Check(Self," in TW3CustomControl._setKeyPress [line: 2490, column: 32, file: SmartCL.Components]").FNoBehavior;
      }
      $Check(Self," in TW3CustomControl._setKeyPress [line: 2491, column: 3, file: SmartCL.Components]").FOnKeyPress = aValue$35;
   }
   /// procedure TW3CustomControl._setKeyUp(const aValue: TKeyUpEvent)
   ///  [line: 2473, column: 28, file: SmartCL.Components]
   ,_setKeyUp:function(Self, aValue$36) {
      $Check(Self," in TW3CustomControl._setKeyUp [line: 2475, column: 4, file: SmartCL.Components]").FHandle["onkeyup"] = $Event1(Self,TW3CustomControl.CBKeyUp$);
      $Check(Self," in TW3CustomControl._setKeyUp [line: 2476, column: 3, file: SmartCL.Components]").FOnKeyUp = aValue$36;
   }
   /// procedure TW3CustomControl._setLostFocus(const aValue: TLostFocusEvent)
   ///  [line: 2256, column: 28, file: SmartCL.Components]
   ,_setLostFocus:function(Self, aValue$37) {
      $Check(Self," in TW3CustomControl._setLostFocus [line: 2259, column: 3, file: SmartCL.Components]").FOnLostFocus = aValue$37;
   }
   /// procedure TW3CustomControl._setMouseClick(const aValue: TMouseClickEvent)
   ///  [line: 2425, column: 28, file: SmartCL.Components]
   ,_setMouseClick:function(Self, aValue$38) {
      $Check(Self," in TW3CustomControl._setMouseClick [line: 2427, column: 3, file: SmartCL.Components]").FOnClick = aValue$38;
   }
   /// procedure TW3CustomControl._setMouseDblClick(const aValue: TMouseDblClickEvent)
   ///  [line: 2441, column: 28, file: SmartCL.Components]
   ,_setMouseDblClick:function(Self, aValue$39) {
      if (aValue$39) {
         $Check(Self," in TW3CustomControl._setMouseDblClick [line: 2444, column: 6, file: SmartCL.Components]").FHandle["ondblclick"] = $Event1(Self,TW3CustomControl.CBDblClick);
      } else {
         $Check(Self," in TW3CustomControl._setMouseDblClick [line: 2446, column: 6, file: SmartCL.Components]").FHandle["ondblclick"] = $Check(Self," in TW3CustomControl._setMouseDblClick [line: 2446, column: 32, file: SmartCL.Components]").FNoBehavior;
      }
      $Check(Self," in TW3CustomControl._setMouseDblClick [line: 2447, column: 3, file: SmartCL.Components]").FOnDblClick = aValue$39;
   }
   /// procedure TW3CustomControl._setMouseDown(const aValue: TMouseDownEvent)
   ///  [line: 2262, column: 28, file: SmartCL.Components]
   ,_setMouseDown:function(Self, aValue$40) {
      $Check(Self," in TW3CustomControl._setMouseDown [line: 2264, column: 4, file: SmartCL.Components]").FHandle["onmousedown"] = $Event1(Self,TW3CustomControl.CBMouseDown$);
      $Check(Self," in TW3CustomControl._setMouseDown [line: 2265, column: 3, file: SmartCL.Components]").FOnMouseDown = aValue$40;
   }
   /// procedure TW3CustomControl._setMouseEnter(const aValue: TMouseEnterEvent)
   ///  [line: 2327, column: 28, file: SmartCL.Components]
   ,_setMouseEnter:function(Self, aValue$41) {
      if (aValue$41) {
         $Check(Self," in TW3CustomControl._setMouseEnter [line: 2330, column: 6, file: SmartCL.Components]").FHandle["onmouseover"] = $Event1(Self,TW3CustomControl.CBMouseEnter);
      } else {
         $Check(Self," in TW3CustomControl._setMouseEnter [line: 2331, column: 9, file: SmartCL.Components]").FHandle["onmouseover"] = $Check(Self," in TW3CustomControl._setMouseEnter [line: 2331, column: 36, file: SmartCL.Components]").FNoBehavior;
      }
      $Check(Self," in TW3CustomControl._setMouseEnter [line: 2332, column: 3, file: SmartCL.Components]").FOnMouseEnter = aValue$41;
   }
   /// procedure TW3CustomControl._setMouseExit(const aValue: TMouseExitEvent)
   ///  [line: 2349, column: 28, file: SmartCL.Components]
   ,_setMouseExit:function(Self, aValue$42) {
      if (aValue$42) {
         $Check(Self," in TW3CustomControl._setMouseExit [line: 2352, column: 6, file: SmartCL.Components]").FHandle["onmouseout"] = $Event1(Self,TW3CustomControl.CBMouseExit);
      } else {
         $Check(Self," in TW3CustomControl._setMouseExit [line: 2354, column: 6, file: SmartCL.Components]").FHandle["onmouseout"] = $Check(Self," in TW3CustomControl._setMouseExit [line: 2354, column: 32, file: SmartCL.Components]").FNoBehavior;
      }
      $Check(Self," in TW3CustomControl._setMouseExit [line: 2355, column: 3, file: SmartCL.Components]").FOnMouseExit = aValue$42;
   }
   /// procedure TW3CustomControl._setMouseMove(const aValue: TMouseMoveEvent)
   ///  [line: 2307, column: 28, file: SmartCL.Components]
   ,_setMouseMove:function(Self, aValue$43) {
      $Check(Self," in TW3CustomControl._setMouseMove [line: 2309, column: 4, file: SmartCL.Components]").FHandle["onmousemove"] = $Event1(Self,TW3CustomControl.CBMouseMove$);
      $Check(Self," in TW3CustomControl._setMouseMove [line: 2310, column: 3, file: SmartCL.Components]").FOnMouseMove = aValue$43;
   }
   /// procedure TW3CustomControl._setMouseUp(const aValue: TMouseUpEvent)
   ///  [line: 2285, column: 28, file: SmartCL.Components]
   ,_setMouseUp:function(Self, aValue$44) {
      $Check(Self," in TW3CustomControl._setMouseUp [line: 2287, column: 4, file: SmartCL.Components]").FHandle["onmouseup"] = $Event1(Self,TW3CustomControl.CBMouseUp$);
      $Check(Self," in TW3CustomControl._setMouseUp [line: 2288, column: 3, file: SmartCL.Components]").FOnMouseUp = aValue$44;
   }
   /// procedure TW3CustomControl._setMouseWheel(const aValue: TMouseWheelEvent)
   ///  [line: 2373, column: 28, file: SmartCL.Components]
   ,_setMouseWheel:function(Self, aValue$45) {
      var onEventSupported = false;
      var mObj$3 = undefined;
      mObj$3 = $Check(Self," in TW3CustomControl._setMouseWheel [line: 2377, column: 15, file: SmartCL.Components]").FHandle;
      
    onEventSupported = 'onmousewheel' in mObj$3;
  if (onEventSupported) {
         if (aValue$45) {
            mObj$3["onmousewheel"] = $Event1(Self,TW3CustomControl.CBMouseWheel);
         } else {
            mObj$3["onmousewheel"] = $Check(Self," in TW3CustomControl._setMouseWheel [line: 2384, column: 35, file: SmartCL.Components]").FNoBehavior;
         }
      } else if (aValue$45) {
         mObj$3.addEventListener("DOMMouseScroll",$Event1(Self,TW3CustomControl.CBMouseWheel),false);
      } else {
         mObj$3.removeEventListener("DOMMouseScroll",$Event1(Self,TW3CustomControl.CBMouseWheel),false);
      }
      $Check(Self," in TW3CustomControl._setMouseWheel [line: 2391, column: 3, file: SmartCL.Components]").FOnMouseWheel = aValue$45;
   }
   /// procedure TW3CustomControl._setResize(const aValue: TReSizeEvent)
   ///  [line: 2702, column: 28, file: SmartCL.Components]
   ,_setResize:function(Self, aValue$46) {
      $Check(Self," in TW3CustomControl._setResize [line: 2704, column: 3, file: SmartCL.Components]").FOnResize = aValue$46;
   }
   /// procedure TW3CustomControl._setTouchBegins(const aValue: TTouchBeginEvent)
   ///  [line: 2554, column: 28, file: SmartCL.Components]
   ,_setTouchBegins:function(Self, aValue$47) {
      if (aValue$47) {
         TW3CustomControl.BindTouch(Self);
      }
      $Check(Self," in TW3CustomControl._setTouchBegins [line: 2558, column: 3, file: SmartCL.Components]").FOnTouchBegins = aValue$47;
   }
   /// procedure TW3CustomControl._setTouchEnds(const aValue: TTouchEndEvent)
   ///  [line: 2594, column: 28, file: SmartCL.Components]
   ,_setTouchEnds:function(Self, aValue$48) {
      if (aValue$48) {
         TW3CustomControl.BindTouch(Self);
      }
      $Check(Self," in TW3CustomControl._setTouchEnds [line: 2598, column: 3, file: SmartCL.Components]").FOnTouchEnds = aValue$48;
   }
   /// procedure TW3CustomControl._setTouchMoves(const aValue: TTouchMoveEvent)
   ///  [line: 2574, column: 28, file: SmartCL.Components]
   ,_setTouchMoves:function(Self, aValue$49) {
      if (aValue$49) {
         TW3CustomControl.BindTouch(Self);
      }
      $Check(Self," in TW3CustomControl._setTouchMoves [line: 2578, column: 4, file: SmartCL.Components]").FOnTouchMoves = aValue$49;
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate$:function($){return $.ClassType.AfterUpdate($)}
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject$:function($){return $.ClassType.StyleTagObject($)}
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18$:function($){return $.ClassType.Create$18.apply($.ClassType, arguments)}
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick$:function($){return $.ClassType.CBClick.apply($.ClassType, arguments)}
   ,CBKeyDown$:function($){return $.ClassType.CBKeyDown.apply($.ClassType, arguments)}
   ,CBKeyUp$:function($){return $.ClassType.CBKeyUp.apply($.ClassType, arguments)}
   ,CBMouseDown$:function($){return $.ClassType.CBMouseDown.apply($.ClassType, arguments)}
   ,CBMouseMove$:function($){return $.ClassType.CBMouseMove.apply($.ClassType, arguments)}
   ,CBMouseUp$:function($){return $.ClassType.CBMouseUp.apply($.ClassType, arguments)}
   ,GetEnabled$:function($){return $.ClassType.GetEnabled($)}
   ,Invalidate$:function($){return $.ClassType.Invalidate($)}
   ,SetEnabled$:function($){return $.ClassType.SetEnabled.apply($.ClassType, arguments)}
};
/// TW3DisplayView = class (TW3CustomControl)
///  [line: 41, column: 3, file: SmartCL.Application]
var TW3DisplayView = {
   $ClassName:"TW3DisplayView",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FArrange = false;
      $.FArrangeKind = 0;
   }
   /// procedure TW3DisplayView.ArrangeChildren(aKind: TW3DisplayViewArangeType)
   ///  [line: 293, column: 26, file: SmartCL.Application]
   ,ArrangeChildren:function(Self, aKind) {
      var x$9 = 0;
      var dx$1 = 0;
      var dy$1 = 0;
      var mObj$4 = null;
      var mCount$1 = 0;
      var mRect = {Bottom$1:0,Left$1:0,Right$1:0,Top$1:0};
      var wd = 0;
      var hd = 0;
      mCount$1 = TW3Component.GetChildCount(Self);
      if (mCount$1>0) {
         mRect = TW3MovableControl.GetBoundsRect($Check(Self," in TW3DisplayView.ArrangeChildren [line: 306, column: 14, file: SmartCL.Application]"));
         switch (aKind) {
            case 0 :
               wd = TRect$Width$1(mRect);
               hd = TRect$Height$1(mRect);
               var $temp9;
               for(x$9 = 0,$temp9 = mCount$1;x$9<$temp9;x$9++) {
                  mObj$4 = TW3Component.GetChildObject(Self,x$9);
                  if ($Is(mObj$4,TW3CustomControl)&&(!$Is(mObj$4,TW3BlockBox))) {
                     TW3MovableControl.SetSize($Check($As(mObj$4,TW3CustomControl)," in TW3DisplayView.ArrangeChildren [line: 322, column: 34, file: SmartCL.Application]"),wd,hd);
                  }
               }
               break;
            case 1 :
               dy$1 = mRect.Top$1;
               wd = TRect$Width$1(mRect);
               var $temp10;
               for(x$9 = 0,$temp10 = mCount$1;x$9<$temp10;x$9++) {
                  mObj$4 = TW3Component.GetChildObject(Self,x$9);
                  if ($Is(mObj$4,TW3CustomControl)&&(!$Is(mObj$4,TW3BlockBox))) {
                     hd = TW3MovableControl.GetHeight$($Check($As(mObj$4,TW3CustomControl)," in TW3DisplayView.ArrangeChildren [line: 337, column: 42, file: SmartCL.Application]"));
                     TW3MovableControl.SetBounds$2($Check($As(mObj$4,TW3CustomControl)," in TW3DisplayView.ArrangeChildren [line: 338, column: 36, file: SmartCL.Application]"),mRect.Left$1,dy$1,wd,hd);
                     (dy$1+= hd);
                  }
               }
               break;
            case 2 :
               dx$1 = mRect.Left$1;
               hd = TRect$Height$1(mRect);
               var $temp11;
               for(x$9 = 0,$temp11 = mCount$1;x$9<$temp11;x$9++) {
                  mObj$4 = TW3Component.GetChildObject(Self,x$9);
                  if ($Is(mObj$4,TW3CustomControl)&&(!$Is(mObj$4,TW3BlockBox))) {
                     wd = TW3MovableControl.GetWidth$($Check($As(mObj$4,TW3CustomControl)," in TW3DisplayView.ArrangeChildren [line: 355, column: 42, file: SmartCL.Application]"));
                     TW3MovableControl.SetBounds$2($Check($As(mObj$4,TW3CustomControl)," in TW3DisplayView.ArrangeChildren [line: 356, column: 36, file: SmartCL.Application]"),dx$1,mRect.Top$1,wd,hd);
                     (dx$1+= wd);
                  }
               }
               break;
         }
      }
   }
   /// procedure TW3DisplayView.InitializeObject()
   ///  [line: 245, column: 26, file: SmartCL.Application]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      $Check(Self," in TW3DisplayView.InitializeObject [line: 248, column: 3, file: SmartCL.Application]").FArrange = true;
      $Check(Self," in TW3DisplayView.InitializeObject [line: 249, column: 3, file: SmartCL.Application]").FArrangeKind = 0;
   }
   /// procedure TW3DisplayView.ReSize()
   ///  [line: 378, column: 26, file: SmartCL.Application]
   ,Resize:function(Self) {
      TW3MovableControl.Resize(Self);
      if ($Check(Self," in TW3DisplayView.ReSize [line: 381, column: 6, file: SmartCL.Application]").FArrange) {
         TW3DisplayView.ArrangeChildren(Self,$Check(Self," in TW3DisplayView.ReSize [line: 382, column: 21, file: SmartCL.Application]").FArrangeKind);
      }
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize$:function($){return $.ClassType.Resize($)}
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3Display = class (TW3CustomControl)
///  [line: 57, column: 3, file: SmartCL.Application]
var TW3Display = {
   $ClassName:"TW3Display",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FFooter = $.FHeader = $.FOnOrient = $.FView = null;
   }
   /// procedure TW3Display.FinalizeObject()
   ///  [line: 397, column: 22, file: SmartCL.Application]
   ,FinalizeObject:function(Self) {
      TObject.Free($Check(Self," in TW3Display.FinalizeObject [line: 399, column: 3, file: SmartCL.Application]").FView);
      if ($Check(Self," in TW3Display.FinalizeObject [line: 400, column: 15, file: SmartCL.Application]").FHeader) {
         TObject.Free($Check(Self," in TW3Display.FinalizeObject [line: 401, column: 5, file: SmartCL.Application]").FHeader);
      }
      if ($Check(Self," in TW3Display.FinalizeObject [line: 402, column: 15, file: SmartCL.Application]").FFooter) {
         TObject.Free($Check(Self," in TW3Display.FinalizeObject [line: 403, column: 5, file: SmartCL.Application]").FFooter);
      }
      TW3CustomControl.FinalizeObject(Self);
   }
   /// function TW3Display.GetHeightOfChildren() : Integer
   ///  [line: 418, column: 21, file: SmartCL.Application]
   ,GetHeightOfChildren:function(Self) {
      var Result = 0;
      var x$10 = 0;
      var mObj$5 = null;
      var $temp12;
      for(x$10 = 0,$temp12 = TW3Component.GetChildCount(Self);x$10<$temp12;x$10++) {
         mObj$5 = TW3Component.GetChildObject(Self,x$10);
         if (((mObj$5!==$Check(Self," in TW3Display.GetHeightOfChildren [line: 423, column: 21, file: SmartCL.Application]").FView)&&$Is(mObj$5,TW3CustomControl))&&(!$Is(mObj$5,TW3BlockBox))) {
            (Result+= TW3MovableControl.GetHeight$($Check($As(mObj$5,TW3CustomControl)," in TW3Display.GetHeightOfChildren [line: 426, column: 42, file: SmartCL.Application]")));
         }
      }
      return Result
   }
   /// procedure TW3Display.InitializeObject()
   ///  [line: 390, column: 22, file: SmartCL.Application]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      $Check(Self," in TW3Display.InitializeObject [line: 393, column: 3, file: SmartCL.Application]").FView = TW3Component.Create$18$($New(TW3DisplayView),Self);
      TW3MovableControl.SetTop($Check($Check(Self," in TW3Display.InitializeObject [line: 394, column: 3, file: SmartCL.Application]").FView," in TW3Display.InitializeObject [line: 394, column: 9, file: SmartCL.Application]"),5);
   }
   /// procedure TW3Display.PositionFormInView(aForm: TW3CustomForm)
   ///  [line: 462, column: 22, file: SmartCL.Application]
   ,PositionFormInView:function(Self, aForm) {
      var mApp = null;
      var dx$2 = 0;
      var dy$2 = 0;
      if (aForm) {
         mApp = Application();
         if ((mApp!==null)&&(!$Check(mApp," in TW3Display.PositionFormInView [line: 472, column: 18, file: SmartCL.Application]").FTerminated)) {
            dx$2 = TW3ScrollInfo.GetScrollLeft(TW3CustomControl.GetScrollInfo($Check(Self," in TW3Display.PositionFormInView [line: 474, column: 13, file: SmartCL.Application]").FView));
            dy$2 = TW3ScrollInfo.GetScrollTop(TW3CustomControl.GetScrollInfo($Check(Self," in TW3Display.PositionFormInView [line: 475, column: 13, file: SmartCL.Application]").FView));
            TW3MovableControl.SetBounds$2($Check(aForm," in TW3Display.PositionFormInView [line: 476, column: 13, file: SmartCL.Application]"),dx$2,dy$2,TW3MovableControl.GetWidth$($Check($Check(Self," in TW3Display.PositionFormInView [line: 476, column: 31, file: SmartCL.Application]").FView," in TW3Display.PositionFormInView [line: 476, column: 36, file: SmartCL.Application]")),TW3MovableControl.GetHeight$($Check($Check(Self," in TW3Display.PositionFormInView [line: 476, column: 43, file: SmartCL.Application]").FView," in TW3Display.PositionFormInView [line: 476, column: 48, file: SmartCL.Application]")));
         }
      } else {
         throw EW3Exception.CreateFmt($New(EW3Screen),$R[0],["PositionFormInView", TObject.ClassName($Check(Self," in TW3Display.PositionFormInView [line: 479, column: 70, file: SmartCL.Application]").ClassType), "Form parameter was NIL error"]);
      }
   }
   /// procedure TW3Display.ReSize()
   ///  [line: 431, column: 22, file: SmartCL.Application]
   ,Resize:function(Self) {
      var mTotal = 0;
      var mList = [];
      var x$11 = 0;
      var dy$3 = 0;
      var mObj$6 = null;
      TW3MovableControl.Resize(Self);
      mTotal = TW3Display.GetHeightOfChildren(Self);
      TW3MovableControl.SetHeight$($Check($Check(Self," in TW3Display.ReSize [line: 442, column: 3, file: SmartCL.Application]").FView," in TW3Display.ReSize [line: 442, column: 9, file: SmartCL.Application]"),TW3MovableControl.GetHeight$($Check(Self," in TW3Display.ReSize [line: 442, column: 20, file: SmartCL.Application]"))-mTotal);
      mList = TW3CustomControl.GetChildrenSortedByYPos($Check(Self," in TW3Display.ReSize [line: 445, column: 12, file: SmartCL.Application]"));
      dy$3 = 0;
      var $temp13;
      for(x$11 = 0,$temp13 = mList.length;x$11<$temp13;x$11++) {
         mObj$6 = $As($DIdxR(mList,x$11," in TW3Display.ReSize [line: 450, column: 38, file: SmartCL.Application]"),TW3CustomControl);
         if ($Is(mObj$6,TW3BlockBox)) {
            TW3MovableControl.SetBounds$2($Check(mObj$6," in TW3Display.ReSize [line: 458, column: 10, file: SmartCL.Application]"),0,0,TW3MovableControl.GetWidth$($Check(Self," in TW3Display.ReSize [line: 458, column: 26, file: SmartCL.Application]")),TW3MovableControl.GetHeight$($Check(Self," in TW3Display.ReSize [line: 458, column: 33, file: SmartCL.Application]")));
         } else {
            TW3MovableControl.SetBounds$2($Check(mObj$6," in TW3Display.ReSize [line: 453, column: 12, file: SmartCL.Application]"),0,dy$3,TW3MovableControl.GetWidth$($Check(Self," in TW3Display.ReSize [line: 453, column: 29, file: SmartCL.Application]")),TW3MovableControl.GetHeight$($Check(mObj$6," in TW3Display.ReSize [line: 453, column: 41, file: SmartCL.Application]")));
            (dy$3+= TW3MovableControl.GetHeight$($Check(mObj$6," in TW3Display.ReSize [line: 454, column: 20, file: SmartCL.Application]")));
            if (!x$11) {
               (dy$3+= 2);
            }
         }
      }
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize$:function($){return $.ClassType.Resize($)}
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3CustomApplication = class (TObject)
///  [line: 216, column: 3, file: SmartCL.Application]
var TW3CustomApplication = {
   $ClassName:"TW3CustomApplication",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FBody = $.FCurrentForm = $.FDisplay = $.FEnterAnim = $.FLeaveAnim = $.FMainForm = $.FOnBeforeUnload = $.FOnUnload = $.FTransDst = $.FTransSrc = null;
      $.FEntryEffect = 0;
      $.FFormChangeActive = $.FTerminated = false;
      $.FForms = [];
   }
   /// procedure TW3CustomApplication.AdjustScreen()
   ///  [line: 757, column: 32, file: SmartCL.Application]
   ,AdjustScreen:function(Self) {
      TW3ScrollInfo.ScrollTo(TW3CustomControl.GetScrollInfo($Check(Self," in TW3CustomApplication.AdjustScreen [line: 759, column: 3, file: SmartCL.Application]").FDisplay),0,0);
      TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3CustomApplication.AdjustScreen [line: 760, column: 3, file: SmartCL.Application]").FDisplay," in TW3CustomApplication.AdjustScreen [line: 760, column: 12, file: SmartCL.Application]"),0,0,TDocumentBody.GetWidth$5($Check(Self," in TW3CustomApplication.AdjustScreen [line: 760, column: 28, file: SmartCL.Application]").FBody),TDocumentBody.GetHeight$5($Check(Self," in TW3CustomApplication.AdjustScreen [line: 760, column: 41, file: SmartCL.Application]").FBody));
   }
   /// procedure TW3CustomApplication.ApplicationClosing()
   ///  [line: 792, column: 32, file: SmartCL.Application]
   ,ApplicationClosing:function(Self) {
      /* null */
   }
   /// procedure TW3CustomApplication.ApplicationStarted()
   ///  [line: 782, column: 32, file: SmartCL.Application]
   ,ApplicationStarted:function(Self) {
      /* null */
   }
   /// procedure TW3CustomApplication.ApplicationStarting()
   ///  [line: 787, column: 32, file: SmartCL.Application]
   ,ApplicationStarting:function(Self) {
      TW3CustomApplication.AdjustScreen(Self);
   }
   /// procedure TW3CustomApplication.CBOnBeforeUnload()
   ///  [line: 709, column: 32, file: SmartCL.Application]
   ,CBOnBeforeUnload:function(Self) {
      if ($Check(Self," in TW3CustomApplication.CBOnBeforeUnload [line: 711, column: 15, file: SmartCL.Application]").FOnBeforeUnload) {
         $CheckFunc($Check(Self," in TW3CustomApplication.CBOnBeforeUnload [line: 712, column: 5, file: SmartCL.Application]").FOnBeforeUnload," in TW3CustomApplication.CBOnBeforeUnload [line: 712, column: 20, file: SmartCL.Application]")(Self);
      }
   }
   /// procedure TW3CustomApplication.CBOnOrientationChange()
   ///  [line: 731, column: 32, file: SmartCL.Application]
   ,CBOnOrientationChange:function(Self) {
      var mOrientation = 0;
      var mTemp$1 = 0;
      var mEntry = null;
      mTemp$1 = parseInt(window.orientation,10);
      switch (mTemp$1) {
         case 0 :
            mOrientation = 0;
            break;
         case 90 :
            mOrientation = 1;
            break;
         case (-90) :
            mOrientation = 2;
            break;
         case 180 :
            mOrientation = 3;
            break;
      }
      try {
         if ($Check(Self," in TW3CustomApplication.CBOnOrientationChange [line: 746, column: 17, file: SmartCL.Application]").FDisplay) {
            mEntry = $Check($Check(Self," in TW3CustomApplication.CBOnOrientationChange [line: 748, column: 17, file: SmartCL.Application]").FDisplay," in TW3CustomApplication.CBOnOrientationChange [line: 748, column: 26, file: SmartCL.Application]").FOnOrient;
            if (mEntry) {
               $CheckFunc(mEntry," in TW3CustomApplication.CBOnOrientationChange [line: 750, column: 15, file: SmartCL.Application]")($Check(Self," in TW3CustomApplication.CBOnOrientationChange [line: 750, column: 16, file: SmartCL.Application]").FDisplay,mOrientation,mTemp$1);
            }
         }
      } finally {
         TW3CustomApplication.AdjustScreen(Self);
      }
   }
   /// procedure TW3CustomApplication.CBOnReSize()
   ///  [line: 726, column: 32, file: SmartCL.Application]
   ,CBOnReSize:function(Self) {
      TW3CustomApplication.AdjustScreen(Self);
   }
   /// procedure TW3CustomApplication.CBOnUnLoad()
   ///  [line: 715, column: 32, file: SmartCL.Application]
   ,CBOnUnLoad:function(Self) {
      try {
         if ($Check(Self," in TW3CustomApplication.CBOnUnLoad [line: 718, column: 17, file: SmartCL.Application]").FOnUnload) {
            $CheckFunc($Check(Self," in TW3CustomApplication.CBOnUnLoad [line: 719, column: 7, file: SmartCL.Application]").FOnUnload," in TW3CustomApplication.CBOnUnLoad [line: 719, column: 16, file: SmartCL.Application]")(Self);
         }
      } finally {
         if (!$Check(Self," in TW3CustomApplication.CBOnUnLoad [line: 721, column: 12, file: SmartCL.Application]").FTerminated) {
            TW3CustomApplication.Terminate(Self);
         }
      }
   }
   /// constructor TW3CustomApplication.Create()
   ///  [line: 487, column: 34, file: SmartCL.Application]
   ,Create$20:function(Self) {
      TObject.Create(Self);
      $Check(Self," in TW3CustomApplication.Create [line: 490, column: 3, file: SmartCL.Application]").FBody = TW3Component.Create$18$($New(TDocumentBody),null);
      $Check(Self," in TW3CustomApplication.Create [line: 491, column: 3, file: SmartCL.Application]").FDisplay = TW3Component.Create$18$($New(TW3Display),$Check(Self," in TW3CustomApplication.Create [line: 491, column: 33, file: SmartCL.Application]").FBody);
      if (!Instance) {
         Instance = Self;
      }
      return Self
   }
   /// function TW3CustomApplication.CreateForm(aForm: TW3CustomFormClass; isMainForm: Boolean = False) : TW3CustomForm
   ///  [line: 823, column: 31, file: SmartCL.Application]
   ,CreateForm:function(Self, aForm$1, isMainForm) {
      var Result = null;
      Result = TW3Component.Create$18$($NewDyn(aForm$1," in TW3CustomApplication.CreateForm [line: 825, column: 19, file: SmartCL.Application]"),$Check($Check(Self," in TW3CustomApplication.CreateForm [line: 825, column: 26, file: SmartCL.Application]").FDisplay," in TW3CustomApplication.CreateForm [line: 825, column: 34, file: SmartCL.Application]").FView);
      TW3CustomApplication.RegisterFormInstance(Self,Result,isMainForm);
      return Result
   }
   /// destructor TW3CustomApplication.Destroy()
   ///  [line: 498, column: 33, file: SmartCL.Application]
   ,Destroy:function(Self) {
      if (!$Check(Self," in TW3CustomApplication.Destroy [line: 500, column: 10, file: SmartCL.Application]").FTerminated) {
         TW3CustomApplication.Terminate(Self);
      }
      TObject.Free($Check(Self," in TW3CustomApplication.Destroy [line: 503, column: 3, file: SmartCL.Application]").FDisplay);
      TObject.Free($Check(Self," in TW3CustomApplication.Destroy [line: 504, column: 3, file: SmartCL.Application]").FBody);
      Instance = null;
      TObject.Destroy(Self);
   }
   /// procedure TW3CustomApplication.GotoFormByRef(aForm: TW3CustomForm; Effect: TFormEntryEffect = 0)
   ///  [line: 962, column: 32, file: SmartCL.Application]
   ,GotoFormByRef:function(Self, aForm$2, Effect) {
      var mIndex$1 = 0;
      if ($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 966, column: 6, file: SmartCL.Application]").FTerminated) {
         return;
      }
      if ($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 967, column: 6, file: SmartCL.Application]").FFormChangeActive) {
         throw EW3Exception.CreateFmt($New(EW3Application),$R[0],["TW3CustomApplication.GotoFormByRef", TObject.ClassName($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 968, column: 69, file: SmartCL.Application]").ClassType), "A form transition is already active error"]);
      }
      if (aForm$2===null) {
         throw EW3Exception.CreateFmt($New(EW3Application),$R[0],["TW3CustomApplication.GotoFormByRef", TObject.ClassName($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 970, column: 69, file: SmartCL.Application]").ClassType), "Form parameter is NIL error"]);
      }
      mIndex$1 = $Check(Self," in TW3CustomApplication.GotoFormByRef [line: 972, column: 13, file: SmartCL.Application]").FForms.indexOf(aForm$2);
      if (mIndex$1<0) {
         throw EW3Exception.CreateFmt($New(EW3Application),$R[0],["TW3CustomApplication.GotoFormByRef", TObject.ClassName($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 974, column: 70, file: SmartCL.Application]").ClassType), "Form not registered error"]);
      }
      if (aForm$2===$Check(Self," in TW3CustomApplication.GotoFormByRef [line: 976, column: 14, file: SmartCL.Application]").FCurrentForm) {
         return;
      }
      if ($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 979, column: 6, file: SmartCL.Application]").FCurrentForm===null) {
         $Check(Self," in TW3CustomApplication.GotoFormByRef [line: 980, column: 5, file: SmartCL.Application]").FCurrentForm = aForm$2;
         TW3Display.PositionFormInView($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 981, column: 5, file: SmartCL.Application]").FDisplay,aForm$2);
         TW3MovableControl.SetVisible($Check(aForm$2," in TW3CustomApplication.GotoFormByRef [line: 982, column: 11, file: SmartCL.Application]"),true);
         TW3CustomForm.FormActivated($Check(aForm$2," in TW3CustomApplication.GotoFormByRef [line: 983, column: 11, file: SmartCL.Application]"));
         return;
      }
      if (!Effect) {
         TW3CustomForm.FormDeactivated($Check($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 987, column: 5, file: SmartCL.Application]").FCurrentForm," in TW3CustomApplication.GotoFormByRef [line: 987, column: 18, file: SmartCL.Application]"));
         TW3MovableControl.SetVisible($Check($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 988, column: 5, file: SmartCL.Application]").FCurrentForm," in TW3CustomApplication.GotoFormByRef [line: 988, column: 18, file: SmartCL.Application]"),false);
         TW3MovableControl.SetVisible($Check(aForm$2," in TW3CustomApplication.GotoFormByRef [line: 990, column: 11, file: SmartCL.Application]"),true);
         TW3Display.PositionFormInView($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 991, column: 5, file: SmartCL.Application]").FDisplay,aForm$2);
         TW3CustomForm.FormActivated($Check(aForm$2," in TW3CustomApplication.GotoFormByRef [line: 992, column: 11, file: SmartCL.Application]"));
         $Check(Self," in TW3CustomApplication.GotoFormByRef [line: 993, column: 5, file: SmartCL.Application]").FCurrentForm = aForm$2;
         return;
      }
      $Check(Self," in TW3CustomApplication.GotoFormByRef [line: 997, column: 3, file: SmartCL.Application]").FFormChangeActive = true;
      $Check(Self," in TW3CustomApplication.GotoFormByRef [line: 998, column: 3, file: SmartCL.Application]").FEntryEffect = Effect;
      TW3CustomControl.BringToFront(aForm$2);
      TW3CustomForm.FormDeactivated($Check($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1002, column: 3, file: SmartCL.Application]").FCurrentForm," in TW3CustomApplication.GotoFormByRef [line: 1002, column: 16, file: SmartCL.Application]"));
      $Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1003, column: 3, file: SmartCL.Application]").FTransSrc = $Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1003, column: 16, file: SmartCL.Application]").FCurrentForm;
      $Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1004, column: 3, file: SmartCL.Application]").FTransDst = aForm$2;
      TW3MovableControl.SetVisible($Check(aForm$2," in TW3CustomApplication.GotoFormByRef [line: 1006, column: 9, file: SmartCL.Application]"),true);
      TW3Display.PositionFormInView($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1007, column: 3, file: SmartCL.Application]").FDisplay,aForm$2);
      if (($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1009, column: 7, file: SmartCL.Application]").FEnterAnim===null)||($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1009, column: 29, file: SmartCL.Application]").FLeaveAnim===null)) {
         $Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1010, column: 5, file: SmartCL.Application]").FEnterAnim = TW3CustomAnimation.Create$42$($New(TW3NamedAnimation));
         TW3CustomAnimation.SetDuration($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1011, column: 5, file: SmartCL.Application]").FEnterAnim,0.3);
         $Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1012, column: 5, file: SmartCL.Application]").FLeaveAnim = TW3CustomAnimation.Create$42$($New(TW3NamedAnimation));
         TW3CustomAnimation.SetDuration($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1013, column: 5, file: SmartCL.Application]").FLeaveAnim,0.3);
      }
      switch (Effect) {
         case 1 :
            $Check($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1018, column: 7, file: SmartCL.Application]").FEnterAnim," in TW3CustomApplication.GotoFormByRef [line: 1018, column: 27, file: SmartCL.Application]").FName$2 = "MOVE-LEFT";
            $Check($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1019, column: 7, file: SmartCL.Application]").FLeaveAnim," in TW3CustomApplication.GotoFormByRef [line: 1019, column: 27, file: SmartCL.Application]").FName$2 = "MOVE-OUT-LEFT";
            break;
         case 2 :
            $Check($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1022, column: 7, file: SmartCL.Application]").FEnterAnim," in TW3CustomApplication.GotoFormByRef [line: 1022, column: 27, file: SmartCL.Application]").FName$2 = "MOVE-RIGHT";
            $Check($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1023, column: 7, file: SmartCL.Application]").FLeaveAnim," in TW3CustomApplication.GotoFormByRef [line: 1023, column: 27, file: SmartCL.Application]").FName$2 = "MOVE-OUT-RIGHT";
            break;
      }
      TW3CustomAnimation.ExecuteEx($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1027, column: 3, file: SmartCL.Application]").FEnterAnim,aForm$2,null,$Event1(Self,TW3CustomApplication.HandleEnterAnimEnds));
      TW3CustomAnimation.ExecuteEx($Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1028, column: 3, file: SmartCL.Application]").FLeaveAnim,$Check(Self," in TW3CustomApplication.GotoFormByRef [line: 1028, column: 24, file: SmartCL.Application]").FCurrentForm,null,$Event1(Self,TW3CustomApplication.HandleLeaveAnimEnds));
   }
   /// procedure TW3CustomApplication.HandleEnterAnimEnds(Sender: TObject)
   ///  [line: 923, column: 32, file: SmartCL.Application]
   ,HandleEnterAnimEnds:function(Self, Sender) {
      var mAnim = null;
      mAnim = $As(Sender,TW3NamedAnimation);
      switch ($Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 928, column: 8, file: SmartCL.Application]").FEntryEffect) {
         case 1 :
            TW3MovableControl.MoveTo($Check($Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 932, column: 7, file: SmartCL.Application]").FTransDst," in TW3CustomApplication.HandleEnterAnimEnds [line: 932, column: 17, file: SmartCL.Application]"),0,0);
            $Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 935, column: 7, file: SmartCL.Application]").FCurrentForm = $Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 935, column: 23, file: SmartCL.Application]").FTransDst;
            TW3CustomForm.FormActivated($Check($Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 936, column: 7, file: SmartCL.Application]").FCurrentForm," in TW3CustomApplication.HandleEnterAnimEnds [line: 936, column: 20, file: SmartCL.Application]"));
            $Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 939, column: 7, file: SmartCL.Application]").FFormChangeActive = false;
            break;
         case 2 :
            TW3MovableControl.MoveTo($Check($Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 943, column: 7, file: SmartCL.Application]").FTransDst," in TW3CustomApplication.HandleEnterAnimEnds [line: 943, column: 17, file: SmartCL.Application]"),0,0);
            $Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 946, column: 7, file: SmartCL.Application]").FCurrentForm = $Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 946, column: 23, file: SmartCL.Application]").FTransDst;
            TW3CustomForm.FormActivated($Check($Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 947, column: 7, file: SmartCL.Application]").FCurrentForm," in TW3CustomApplication.HandleEnterAnimEnds [line: 947, column: 20, file: SmartCL.Application]"));
            TW3MovableControl.SetVisible($Check($Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 949, column: 7, file: SmartCL.Application]").FTransSrc," in TW3CustomApplication.HandleEnterAnimEnds [line: 949, column: 17, file: SmartCL.Application]"),false);
            TW3Display.PositionFormInView($Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 950, column: 7, file: SmartCL.Application]").FDisplay,$Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 950, column: 35, file: SmartCL.Application]").FTransSrc);
            $Check(Self," in TW3CustomApplication.HandleEnterAnimEnds [line: 953, column: 7, file: SmartCL.Application]").FFormChangeActive = false;
            break;
      }
      TObject.Free(mAnim);
      mAnim = null;
   }
   /// procedure TW3CustomApplication.HandleLeaveAnimEnds(Sender: TObject)
   ///  [line: 914, column: 32, file: SmartCL.Application]
   ,HandleLeaveAnimEnds:function(Self, Sender$1) {
      var mAnim$1 = null;
      mAnim$1 = $As(Sender$1,TW3NamedAnimation);
      TW3MovableControl.SetVisible($Check($Check(Self," in TW3CustomApplication.HandleLeaveAnimEnds [line: 919, column: 3, file: SmartCL.Application]").FTransSrc," in TW3CustomApplication.HandleLeaveAnimEnds [line: 919, column: 13, file: SmartCL.Application]"),false);
      TObject.Free(mAnim$1);
   }
   /// procedure TW3CustomApplication.HookWindowEvents()
   ///  [line: 520, column: 32, file: SmartCL.Application]
   ,HookWindowEvents:function(Self) {
      w3_bind2(document.body,"onunload",$Event0(Self,TW3CustomApplication.CBOnUnLoad));
      w3_bind2(document.body,"onbeforeunload",$Event0(Self,TW3CustomApplication.CBOnBeforeUnload));
      w3_bind2(window,"onresize",$Event0(Self,TW3CustomApplication.CBOnReSize));
      w3_bind2(window,"onorientationchange",$Event0(Self,TW3CustomApplication.CBOnOrientationChange));
   }
   /// procedure TW3CustomApplication.RegisterFormInstance(aForm: TW3CustomForm; isMainForm: Boolean = False)
   ///  [line: 829, column: 32, file: SmartCL.Application]
   ,RegisterFormInstance:function(Self, aForm$3, isMainForm$1) {
      if ($Check(Self," in TW3CustomApplication.RegisterFormInstance [line: 831, column: 6, file: SmartCL.Application]").FTerminated) {
         return;
      }
      if (aForm$3) {
         if ($Check(Self," in TW3CustomApplication.RegisterFormInstance [line: 836, column: 8, file: SmartCL.Application]").FForms.indexOf(aForm$3)<0) {
            try {
               $Check(Self," in TW3CustomApplication.RegisterFormInstance [line: 841, column: 9, file: SmartCL.Application]").FForms.push(aForm$3);
            } catch ($e) {
               var e$4 = $W($e);
               throw EW3Exception.CreateFmt($New(EW3Exception),$R[0],["TW3CustomApplication.RegisterFormInstance", TObject.ClassName($Check(Self," in TW3CustomApplication.RegisterFormInstance [line: 845, column: 29, file: SmartCL.Application]").ClassType), $Check(e$4," in TW3CustomApplication.RegisterFormInstance [line: 845, column: 42, file: SmartCL.Application]").FMessage]);
            }
            w3_RequestAnimationFrame(function () {
               TW3MovableControl.AdjustToParentBox($Check(aForm$3," in  [line: 854, column: 17, file: SmartCL.Application]"));
            });
            if (isMainForm$1) {
               $Check(Self," in TW3CustomApplication.RegisterFormInstance [line: 861, column: 9, file: SmartCL.Application]").FMainForm = aForm$3;
            } else {
               TW3MovableControl.SetVisible($Check(aForm$3," in TW3CustomApplication.RegisterFormInstance [line: 863, column: 15, file: SmartCL.Application]"),false);
            }
         } else {
            throw EW3Exception.CreateFmt($New(EW3Application),$R[0],["TW3CustomApplication.RegisterFormInstance", TObject.ClassName($Check(Self," in TW3CustomApplication.RegisterFormInstance [line: 866, column: 72, file: SmartCL.Application]").ClassType), "Form already registered"]);
         }
      } else {
         throw EW3Exception.CreateFmt($New(EW3Application),$R[0],["TW3CustomApplication.RegisterFormInstance", TObject.ClassName($Check(Self," in TW3CustomApplication.RegisterFormInstance [line: 868, column: 70, file: SmartCL.Application]").ClassType), "Form parameter is NIL error"]);
      }
   }
   /// procedure TW3CustomApplication.RunApp()
   ///  [line: 797, column: 32, file: SmartCL.Application]
   ,RunApp:function(Self) {
      var FTemp = null;
      TW3CustomApplication.HookWindowEvents($Check(Self," in TW3CustomApplication.RunApp [line: 801, column: 3, file: SmartCL.Application]"));
      TW3CustomApplication.ApplicationStarting($Check(Self," in TW3CustomApplication.RunApp [line: 802, column: 3, file: SmartCL.Application]"));
      TApplicationFormsList.AutoCreateForms(FormsFactory(),$Check($Check(Self," in TW3CustomApplication.RunApp [line: 803, column: 32, file: SmartCL.Application]").FDisplay," in TW3CustomApplication.RunApp [line: 803, column: 40, file: SmartCL.Application]").FView);
      if ($Check(Self," in TW3CustomApplication.RunApp [line: 804, column: 15, file: SmartCL.Application]").FMainForm) {
         FTemp = $Check(Self," in TW3CustomApplication.RunApp [line: 806, column: 14, file: SmartCL.Application]").FMainForm;
         $Check(Self," in TW3CustomApplication.RunApp [line: 807, column: 5, file: SmartCL.Application]").FMainForm = null;
         TW3CustomApplication.GotoFormByRef(Self,FTemp,0);
      }
      TW3CustomApplication.ApplicationStarted($Check(Self," in TW3CustomApplication.RunApp [line: 810, column: 3, file: SmartCL.Application]"));
   }
   /// procedure TW3CustomApplication.Terminate()
   ///  [line: 763, column: 32, file: SmartCL.Application]
   ,Terminate:function(Self) {
      var x$12 = 0;
      if ($Check(Self," in TW3CustomApplication.Terminate [line: 765, column: 6, file: SmartCL.Application]").FTerminated) {
         return;
      }
      $Check(Self," in TW3CustomApplication.Terminate [line: 767, column: 3, file: SmartCL.Application]").FTerminated = true;
      TW3CustomApplication.ApplicationClosing($Check(Self," in TW3CustomApplication.Terminate [line: 768, column: 3, file: SmartCL.Application]"));
      try {
         var $temp14;
         for(x$12 = 0,$temp14 = $Check(Self," in TW3CustomApplication.Terminate [line: 771, column: 23, file: SmartCL.Application]").FForms.length;x$12<$temp14;x$12++) {
            TObject.Free($DIdxR($Check(Self," in TW3CustomApplication.Terminate [line: 773, column: 7, file: SmartCL.Application]").FForms,x$12," in TW3CustomApplication.Terminate [line: 773, column: 16, file: SmartCL.Application]"));
            $DIdxW($Check(Self," in TW3CustomApplication.Terminate [line: 774, column: 7, file: SmartCL.Application]").FForms,x$12,null," in TW3CustomApplication.Terminate [line: 774, column: 23, file: SmartCL.Application]");
         }
         $Check(Self," in TW3CustomApplication.Terminate [line: 776, column: 5, file: SmartCL.Application]").FForms.length=0;
      } finally {
         TObject.Free(Self);
      }
   }
   /// procedure TW3CustomApplication.UnRegisterFormInstance(aForm: TW3CustomForm)
   ///  [line: 871, column: 32, file: SmartCL.Application]
   ,UnRegisterFormInstance:function(Self, aForm$4) {
      var mIndex$2 = 0;
      if (!$Check(Self," in TW3CustomApplication.UnRegisterFormInstance [line: 875, column: 10, file: SmartCL.Application]").FTerminated) {
         if (aForm$4) {
            mIndex$2 = $Check(Self," in TW3CustomApplication.UnRegisterFormInstance [line: 879, column: 17, file: SmartCL.Application]").FForms.indexOf(aForm$4);
            if (mIndex$2>=0) {
               if ($Check(Self," in TW3CustomApplication.UnRegisterFormInstance [line: 882, column: 12, file: SmartCL.Application]").FMainForm!==aForm$4) {
                  if ($Check(Self," in TW3CustomApplication.UnRegisterFormInstance [line: 885, column: 14, file: SmartCL.Application]").FCurrentForm===aForm$4) {
                     TW3CustomApplication.GotoFormByRef(Self,$Check(Self," in TW3CustomApplication.UnRegisterFormInstance [line: 886, column: 25, file: SmartCL.Application]").FMainForm,0);
                  }
                  $Check(Self," in TW3CustomApplication.UnRegisterFormInstance [line: 889, column: 11, file: SmartCL.Application]").FForms.splice(mIndex$2,1)
                  ;
                  try {
                     TObject.Free(aForm$4);
                  } catch ($e) {
                     var e$5 = $W($e);
                     throw EW3Exception.CreateFmt($New(EW3Application),$R[0],["TW3CustomApplication.UnRegisterFormInstance", TObject.ClassName($Check(Self," in TW3CustomApplication.UnRegisterFormInstance [line: 898, column: 35, file: SmartCL.Application]").ClassType), $Check(e$5," in TW3CustomApplication.UnRegisterFormInstance [line: 898, column: 48, file: SmartCL.Application]").FMessage]);
                  }
               } else {
                  throw EW3Exception.CreateFmt($New(EW3Application),$R[0],["TW3CustomApplication.UnRegisterFormInstance", TObject.ClassName($Check(Self," in TW3CustomApplication.UnRegisterFormInstance [line: 904, column: 31, file: SmartCL.Application]").ClassType), "Main form cannot be removed error"]);
               }
            } else {
               throw EW3Exception.CreateFmt($New(EW3Application),$R[0],["TW3CustomApplication.UnRegisterFormInstance", TObject.ClassName($Check(Self," in TW3CustomApplication.UnRegisterFormInstance [line: 907, column: 11, file: SmartCL.Application]").ClassType), "Form is not registered"]);
            }
         } else {
            throw EW3Exception.CreateFmt($New(EW3Application),$R[0],["TW3CustomApplication.UnRegisterFormInstance", TObject.ClassName($Check(Self," in TW3CustomApplication.UnRegisterFormInstance [line: 910, column: 9, file: SmartCL.Application]").ClassType), "Form parameter is NIL error"]);
         }
      }
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
};
/// TW3BlockBox = class (TW3CustomControl)
///  [line: 38, column: 3, file: SmartCL.Application]
var TW3BlockBox = {
   $ClassName:"TW3BlockBox",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3CustomControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TModalResult enumeration
///  [line: 82, column: 3, file: SmartCL.Application]
var TModalResult = [ "mrCancel", "mrOK" ];
/// TFormEntryEffect enumeration
///  [line: 30, column: 3, file: SmartCL.Application]
var TFormEntryEffect = [ "feNone", "feFromRight", "feToLeft" ];
/// TDisplayOrientation enumeration
///  [line: 32, column: 3, file: SmartCL.Application]
var TDisplayOrientation = [ "soPortrait", "soLandscapeLeft", "soLandscapeRight", "soFlipped" ];
/// TApplicationFormsList = class (TObject)
///  [line: 174, column: 3, file: SmartCL.Application]
var TApplicationFormsList = {
   $ClassName:"TApplicationFormsList",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FFormOwner = null;
      $.FList = [];
      $.FNextAutoCreate = 0;
   }
   /// procedure TApplicationFormsList.AutoCreateForm(aFormInfo: TApplicationFormInfo)
   ///  [line: 1052, column: 33, file: SmartCL.Application]
   ,AutoCreateForm:function(Self, aFormInfo) {
      if (!$Check(aFormInfo," in TApplicationFormsList.AutoCreateForm [line: 1054, column: 29, file: SmartCL.Application]").a$6) {
         $Check(aFormInfo," in TApplicationFormsList.AutoCreateForm [line: 1056, column: 24, file: SmartCL.Application]").a$6 = TW3Component.Create$18$($NewDyn($Check(aFormInfo," in TApplicationFormsList.AutoCreateForm [line: 1056, column: 37, file: SmartCL.Application]").a$4," in TApplicationFormsList.AutoCreateForm [line: 1056, column: 47, file: SmartCL.Application]"),$Check(Self," in TApplicationFormsList.AutoCreateForm [line: 1056, column: 54, file: SmartCL.Application]").FFormOwner);
         TW3CustomApplication.RegisterFormInstance(Application(),$Check(aFormInfo," in TApplicationFormsList.AutoCreateForm [line: 1057, column: 48, file: SmartCL.Application]").a$6,$Check(aFormInfo," in TApplicationFormsList.AutoCreateForm [line: 1057, column: 68, file: SmartCL.Application]").a$8);
      }
      $Check(aFormInfo," in TApplicationFormsList.AutoCreateForm [line: 1059, column: 35, file: SmartCL.Application]").a$9 = true;
   }
   /// procedure TApplicationFormsList.AutoCreateForms(owner: TW3Component)
   ///  [line: 1062, column: 33, file: SmartCL.Application]
   ,AutoCreateForms:function(Self, owner) {
      var a$55 = 0;
      var info = null;
      var a$56 = [];
      $Check(Self," in TApplicationFormsList.AutoCreateForms [line: 1064, column: 3, file: SmartCL.Application]").FFormOwner = owner;
      $Check(Self," in TApplicationFormsList.AutoCreateForms [line: 1066, column: 3, file: SmartCL.Application]").FNextAutoCreate = 0;
      a$56 = $Check(Self," in TApplicationFormsList.AutoCreateForms [line: 1067, column: 19, file: SmartCL.Application]").FList;
      var $temp15;
      for(a$55 = 0,$temp15 = a$56.length;a$55<$temp15;a$55++) {
         info = $DIdxR(a$56,a$55," in TApplicationFormsList.AutoCreateForms [line: 1067, column: 25, file: SmartCL.Application]");
         TApplicationFormsList.AutoCreateForm(Self,info);
         ++$Check(Self," in TApplicationFormsList.AutoCreateForms [line: 1069, column: 9, file: SmartCL.Application]").FNextAutoCreate;
         if ($Check(info," in TApplicationFormsList.AutoCreateForms [line: 1070, column: 13, file: SmartCL.Application]").a$8) {
            break;
         }
      }
      setTimeout($Event0(Self,TApplicationFormsList.AutoCreateNextForm),50);
   }
   /// procedure TApplicationFormsList.AutoCreateNextForm()
   ///  [line: 1077, column: 33, file: SmartCL.Application]
   ,AutoCreateNextForm:function(Self) {
      var iForm = 0;
      var info$1 = null;
      var $temp16;
      for(iForm = $Check(Self," in TApplicationFormsList.AutoCreateNextForm [line: 1079, column: 20, file: SmartCL.Application]").FNextAutoCreate,$temp16 = $Check(Self," in TApplicationFormsList.AutoCreateNextForm [line: 1079, column: 39, file: SmartCL.Application]").FList.length;iForm<$temp16;iForm++) {
         info$1 = $DIdxR($Check(Self," in TApplicationFormsList.AutoCreateNextForm [line: 1080, column: 17, file: SmartCL.Application]").FList,iForm," in TApplicationFormsList.AutoCreateNextForm [line: 1080, column: 29, file: SmartCL.Application]");
         if (($Check(info$1," in TApplicationFormsList.AutoCreateNextForm [line: 1081, column: 13, file: SmartCL.Application]").a$5&&(!($Check(info$1," in TApplicationFormsList.AutoCreateNextForm [line: 1081, column: 50, file: SmartCL.Application]").a$6!==null)))&&(!$Check(info$1," in TApplicationFormsList.AutoCreateNextForm [line: 1081, column: 75, file: SmartCL.Application]").a$9)) {
            TApplicationFormsList.AutoCreateForm(Self,info$1);
            ++$Check(Self," in TApplicationFormsList.AutoCreateNextForm [line: 1084, column: 11, file: SmartCL.Application]").FNextAutoCreate;
            if ($Check(Self," in TApplicationFormsList.AutoCreateNextForm [line: 1085, column: 10, file: SmartCL.Application]").FNextAutoCreate<($Check(Self," in TApplicationFormsList.AutoCreateNextForm [line: 1085, column: 28, file: SmartCL.Application]").FList.length-1)) {
               setTimeout($Event0(Self,TApplicationFormsList.AutoCreateNextForm),50);
            }
            break;
         }
      }
   }
   /// function TApplicationFormsList.IndexOfFormClass(aFormClass: TW3CustomFormClass) : Integer
   ///  [line: 1111, column: 32, file: SmartCL.Application]
   ,IndexOfFormClass:function(Self, aFormClass) {
      var Result = 0;
      var $temp17;
      for(Result = 0,$temp17 = $Check(Self," in TApplicationFormsList.IndexOfFormClass [line: 1113, column: 30, file: SmartCL.Application]").FList.length;Result<$temp17;Result++) {
         if ($Check($DIdxR($Check(Self," in TApplicationFormsList.IndexOfFormClass [line: 1114, column: 8, file: SmartCL.Application]").FList,Result," in TApplicationFormsList.IndexOfFormClass [line: 1114, column: 21, file: SmartCL.Application]")," in TApplicationFormsList.IndexOfFormClass [line: 1114, column: 22, file: SmartCL.Application]").a$4==aFormClass) {
            return Result;
         }
      }
      Result = -1;
      return Result
   }
   /// procedure TApplicationFormsList.RegisterFormInstance(aFormClass: TW3CustomFormClass; aFormInstance: TW3CustomForm)
   ///  [line: 1158, column: 33, file: SmartCL.Application]
   ,RegisterFormInstance$1:function(Self, aFormClass$1, aFormInstance) {
      var formInfo = null;
      var idx = 0;
      idx = TApplicationFormsList.IndexOfFormClass(Self,aFormClass$1);
      if (idx>=0) {
         formInfo = $DIdxR($Check(Self," in TApplicationFormsList.RegisterFormInstance [line: 1164, column: 17, file: SmartCL.Application]").FList,idx," in TApplicationFormsList.RegisterFormInstance [line: 1165, column: 3, file: SmartCL.Application]");
      } else {
         formInfo = TObject.Create($New(TApplicationFormInfo));
         $Check(formInfo," in TApplicationFormsList.RegisterFormInstance [line: 1167, column: 24, file: SmartCL.Application]").a$4 = aFormClass$1;
         $Check(Self," in TApplicationFormsList.RegisterFormInstance [line: 1168, column: 5, file: SmartCL.Application]").FList.push(formInfo);
      }
      $Check(formInfo," in TApplicationFormsList.RegisterFormInstance [line: 1170, column: 21, file: SmartCL.Application]").a$6 = aFormInstance;
      $Check(formInfo," in TApplicationFormsList.RegisterFormInstance [line: 1171, column: 34, file: SmartCL.Application]").a$9 = true;
   }
   /// procedure TApplicationFormsList.UnregisterFormInstance(aFormInstance: TW3CustomForm)
   ///  [line: 1174, column: 33, file: SmartCL.Application]
   ,UnregisterFormInstance:function(Self, aFormInstance$1) {
      var i$1 = 0;
      var $temp18;
      for(i$1 = 0,$temp18 = $Check(Self," in TApplicationFormsList.UnregisterFormInstance [line: 1176, column: 29, file: SmartCL.Application]").FList.length;i$1<$temp18;i$1++) {
         if ($Check($DIdxR($Check(Self," in TApplicationFormsList.UnregisterFormInstance [line: 1177, column: 8, file: SmartCL.Application]").FList,i$1," in TApplicationFormsList.UnregisterFormInstance [line: 1177, column: 16, file: SmartCL.Application]")," in TApplicationFormsList.UnregisterFormInstance [line: 1177, column: 17, file: SmartCL.Application]").a$6===aFormInstance$1) {
            $Check($DIdxR($Check(Self," in TApplicationFormsList.UnregisterFormInstance [line: 1178, column: 7, file: SmartCL.Application]").FList,i$1," in TApplicationFormsList.UnregisterFormInstance [line: 1178, column: 15, file: SmartCL.Application]")," in TApplicationFormsList.UnregisterFormInstance [line: 1178, column: 25, file: SmartCL.Application]").a$6 = null;
         }
      }
   }
   ,Destroy:TObject.Destroy
};
/// TApplicationFormInfo = class (TObject)
///  [line: 164, column: 3, file: SmartCL.Application]
var TApplicationFormInfo = {
   $ClassName:"TApplicationFormInfo",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.a$9 = $.a$8 = $.a$5 = false;
      $.a$6 = null;
      $.a$4 = null;
   }
   ,Destroy:TObject.Destroy
};
function Forms$2() {
   return FormsFactory();
};
/// EW3Screen = class (EW3Exception)
///  [line: 27, column: 3, file: SmartCL.Application]
var EW3Screen = {
   $ClassName:"EW3Screen",
   $Parent:EW3Exception
   ,$Init:function ($) {
      EW3Exception.$Init($);
   }
   ,Destroy:Exception.Destroy
};
/// EW3Application = class (EW3Exception)
///  [line: 28, column: 3, file: SmartCL.Application]
var EW3Application = {
   $ClassName:"EW3Application",
   $Parent:EW3Exception
   ,$Init:function ($) {
      EW3Exception.$Init($);
   }
   ,Destroy:Exception.Destroy
};
function Application() {
   return Instance;
};
/// TModalInfo = class (TObject)
///  [line: 207, column: 3, file: SmartCL.Application]
var TModalInfo = {
   $ClassName:"TModalInfo",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.OnOK = null;
      $.OnCancel = null;
      $.ModalForm = $.ModalPanel = $.OwnerForm = $.OpaqueMask = null;
   }
   ,Destroy:TObject.Destroy
};
function FormsFactory() {
   var Result = null;
   if (!GForms) {
      GForms = TObject.Create($New(TApplicationFormsList));
   }
   Result = GForms;
   return Result
};
/// TW3CustomForm = class (TW3CustomControl)
///  [line: 23, column: 3, file: SmartCL.Forms]
var TW3CustomForm = {
   $ClassName:"TW3CustomForm",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FCaption = "";
      $.FInitialized = false;
   }
   /// constructor TW3CustomForm.Create(AOwner: TW3Component)
   ///  [line: 56, column: 27, file: SmartCL.Forms]
   ,Create$18:function(Self, AOwner$3) {
      TW3CustomControl.Create$18(Self,AOwner$3);
      TApplicationFormsList.RegisterFormInstance$1(Forms$2(),$AsClass(TObject.ClassType($Check(Self," in TW3CustomForm.Create [line: 59, column: 30, file: SmartCL.Forms]").ClassType),TW3CustomForm),Self);
      return Self
   }
   /// destructor TW3CustomForm.Destroy()
   ///  [line: 62, column: 26, file: SmartCL.Forms]
   ,Destroy:function(Self) {
      TW3CustomApplication.UnRegisterFormInstance(Application(),Self);
      TApplicationFormsList.UnregisterFormInstance(Forms$2(),Self);
   }
   /// procedure TW3CustomForm.FormActivated()
   ///  [line: 86, column: 25, file: SmartCL.Forms]
   ,FormActivated:function(Self) {
      var x$13 = 0;
      var mObj$7 = null;
      var mControl = null;
      if (!$Check(Self," in TW3CustomForm.FormActivated [line: 92, column: 10, file: SmartCL.Forms]").FInitialized) {
         $Check(Self," in TW3CustomForm.FormActivated [line: 93, column: 5, file: SmartCL.Forms]").FInitialized = true;
         TW3CustomForm.InitializeForm($Check(Self," in TW3CustomForm.FormActivated [line: 94, column: 5, file: SmartCL.Forms]"));
      }
      if ($Check(Self," in TW3CustomForm.FormActivated [line: 96, column: 6, file: SmartCL.Forms]").FObjReady) {
         var $temp19;
         for(x$13 = 0,$temp19 = TW3Component.GetChildCount(Self);x$13<$temp19;x$13++) {
            mObj$7 = TW3Component.GetChildObject(Self,x$13);
            if ($Is(mObj$7,TW3CustomControl)) {
               mControl = $As(mObj$7,TW3CustomControl);
               if ($Check(mControl," in TW3CustomForm.FormActivated [line: 104, column: 21, file: SmartCL.Forms]").FObjReady&&TW3MovableControl.GetVisible($Check(mControl," in TW3CustomForm.FormActivated [line: 104, column: 46, file: SmartCL.Forms]"))) {
                  TW3CustomControl.LayoutChildren($Check(mControl," in TW3CustomForm.FormActivated [line: 105, column: 21, file: SmartCL.Forms]"));
               }
            }
         }
      }
   }
   /// procedure TW3CustomForm.FormDeactivated()
   ///  [line: 111, column: 25, file: SmartCL.Forms]
   ,FormDeactivated:function(Self) {
      /* null */
   }
   /// procedure TW3CustomForm.InitializeForm()
   ///  [line: 76, column: 25, file: SmartCL.Forms]
   ,InitializeForm:function(Self) {
      /* null */
   }
   /// procedure TW3CustomForm.setCaption(Value: String)
   ///  [line: 81, column: 25, file: SmartCL.Forms]
   ,setCaption:function(Self, Value$7) {
      $Check(Self," in TW3CustomForm.setCaption [line: 83, column: 3, file: SmartCL.Forms]").FCaption = Value$7;
   }
   /// procedure TW3CustomForm.StyleTagObject()
   ///  [line: 68, column: 25, file: SmartCL.Forms]
   ,StyleTagObject:function(Self) {
      TW3CustomControl.StyleTagObject(Self);
      w3_setStyle($Check(Self," in TW3CustomForm.StyleTagObject [line: 72, column: 15, file: SmartCL.Forms]").FHandle,w3_CSSPrefix("Transform"),"none");
      TW3CustomControl.SetStyleClass(Self,"TW3CustomForm");
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3CustomControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject$:function($){return $.ClassType.StyleTagObject($)}
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18$:function($){return $.ClassType.Create$18.apply($.ClassType, arguments)}
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3Form = class (TW3CustomForm)
///  [line: 43, column: 3, file: SmartCL.Forms]
var TW3Form = {
   $ClassName:"TW3Form",
   $Parent:TW3CustomForm
   ,$Init:function ($) {
      TW3CustomForm.$Init($);
   }
   ,Destroy:TW3CustomForm.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3CustomControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomForm.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomForm.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3ScrollInfo = class (TW3OwnedObject)
///  [line: 276, column: 3, file: SmartCL.Components]
var TW3ScrollInfo = {
   $ClassName:"TW3ScrollInfo",
   $Parent:TW3OwnedObject
   ,$Init:function ($) {
      TW3OwnedObject.$Init($);
   }
   /// function TW3ScrollInfo.AcceptParent(aObject: TObject) : Boolean
   ///  [line: 1356, column: 24, file: SmartCL.Components]
   ,AcceptParent:function(Self, aObject$1) {
      return (aObject$1!==null)&&$Is(aObject$1,TW3TagObj);
   }
   /// function TW3ScrollInfo.GetScrollHeight() : Integer
   ///  [line: 1402, column: 24, file: SmartCL.Components]
   ,GetScrollHeight:function(Self) {
      var Result = 0;
      var mRef = undefined;
      mRef = $Check($As($Check(Self," in TW3ScrollInfo.GetScrollHeight [line: 1406, column: 21, file: SmartCL.Components]").FOwner,TW3TagObj)," in TW3ScrollInfo.GetScrollHeight [line: 1406, column: 28, file: SmartCL.Components]").FHandle;
      if (mRef) {
         Result = TVariant.AsInteger(mRef.scrollHeight);
      } else {
         EW3TagObj.RaiseCntErrMethod("TW3ScrollInfo.GetScrollHeight",Self,"invalid owner handle error");
      }
      return Result
   }
   /// function TW3ScrollInfo.GetScrollLeft() : Integer
   ///  [line: 1412, column: 24, file: SmartCL.Components]
   ,GetScrollLeft:function(Self) {
      var Result = 0;
      var mRef$1 = undefined;
      mRef$1 = $Check($As($Check(Self," in TW3ScrollInfo.GetScrollLeft [line: 1416, column: 21, file: SmartCL.Components]").FOwner,TW3TagObj)," in TW3ScrollInfo.GetScrollLeft [line: 1416, column: 28, file: SmartCL.Components]").FHandle;
      if (mRef$1) {
         Result = TVariant.AsInteger(mRef$1.scrollLeft);
      } else {
         EW3TagObj.RaiseCntErrMethod("TW3ScrollInfo.GetScrollLeft",Self,"invalid owner handle error");
      }
      return Result
   }
   /// function TW3ScrollInfo.GetScrollTop() : Integer
   ///  [line: 1422, column: 24, file: SmartCL.Components]
   ,GetScrollTop:function(Self) {
      var Result = 0;
      var mRef$2 = undefined;
      mRef$2 = $Check($As($Check(Self," in TW3ScrollInfo.GetScrollTop [line: 1426, column: 21, file: SmartCL.Components]").FOwner,TW3TagObj)," in TW3ScrollInfo.GetScrollTop [line: 1426, column: 28, file: SmartCL.Components]").FHandle;
      if (mRef$2) {
         Result = TVariant.AsInteger(mRef$2.scrollTop);
      } else {
         EW3TagObj.RaiseCntErrMethod("TW3ScrollInfo.GetScrollTop",Self,"invalid owner handle error");
      }
      return Result
   }
   /// function TW3ScrollInfo.GetScrollWidth() : Integer
   ///  [line: 1392, column: 24, file: SmartCL.Components]
   ,GetScrollWidth:function(Self) {
      var Result = 0;
      var mRef$3 = undefined;
      mRef$3 = $Check($As($Check(Self," in TW3ScrollInfo.GetScrollWidth [line: 1396, column: 21, file: SmartCL.Components]").FOwner,TW3TagObj)," in TW3ScrollInfo.GetScrollWidth [line: 1396, column: 28, file: SmartCL.Components]").FHandle;
      if (mRef$3) {
         Result = TVariant.AsInteger(mRef$3.scrollWidth);
      } else {
         EW3TagObj.RaiseCntErrMethod("TW3ScrollInfo.GetScrollWidth",Self,"invalid owner handle error");
      }
      return Result
   }
   /// procedure TW3ScrollInfo.ScrollTo(aLeft: Integer; aTop: Integer)
   ///  [line: 1432, column: 25, file: SmartCL.Components]
   ,ScrollTo:function(Self, aLeft$3, aTop$3) {
      var mRef$4 = undefined;
      mRef$4 = $Check($As($Check(Self," in TW3ScrollInfo.ScrollTo [line: 1436, column: 21, file: SmartCL.Components]").FOwner,TW3TagObj)," in TW3ScrollInfo.ScrollTo [line: 1436, column: 28, file: SmartCL.Components]").FHandle;
      if (mRef$4) {
         mRef$4.scrollLeft = aLeft$3;
         mRef$4.scrollTop = aTop$3;
      } else {
         EW3TagObj.RaiseCntErrMethod("TW3ScrollInfo.ScrollTo",Self,"invalid owner handle error");
      }
   }
   ,Destroy:TObject.Destroy
   ,AcceptParent$:function($){return $.ClassType.AcceptParent.apply($.ClassType, arguments)}
   ,Create$4:TW3OwnedObject.Create$4
};
/// TW3GraphicControl = class (TW3CustomControl)
///  [line: 547, column: 3, file: SmartCL.Components]
var TW3GraphicControl = {
   $ClassName:"TW3GraphicControl",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FCanvas = $.FContext$2 = $.FOnPaint = null;
      $.FDirty$1 = false;
   }
   /// procedure TW3GraphicControl.FinalizeObject()
   ///  [line: 1456, column: 29, file: SmartCL.Components]
   ,FinalizeObject:function(Self) {
      TObject.Free($Check(Self," in TW3GraphicControl.FinalizeObject [line: 1458, column: 3, file: SmartCL.Components]").FCanvas);
      TObject.Free($Check(Self," in TW3GraphicControl.FinalizeObject [line: 1459, column: 3, file: SmartCL.Components]").FContext$2);
      TW3CustomControl.FinalizeObject(Self);
   }
   /// procedure TW3GraphicControl.InitializeObject()
   ///  [line: 1449, column: 29, file: SmartCL.Components]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      $Check(Self," in TW3GraphicControl.InitializeObject [line: 1452, column: 3, file: SmartCL.Components]").FContext$2 = TW3ControlGraphicContext.Create$29($New(TW3ControlGraphicContext),$Check(Self," in TW3GraphicControl.InitializeObject [line: 1452, column: 47, file: SmartCL.Components]").FHandle);
      $Check(Self," in TW3GraphicControl.InitializeObject [line: 1453, column: 3, file: SmartCL.Components]").FCanvas = TW3Canvas.Create$31($New(TW3Canvas),$Check(Self," in TW3GraphicControl.InitializeObject [line: 1453, column: 31, file: SmartCL.Components]").FContext$2);
   }
   /// procedure TW3GraphicControl.Invalidate()
   ///  [line: 1509, column: 29, file: SmartCL.Components]
   ,Invalidate:function(Self) {
      if (!$Check(Self," in TW3GraphicControl.Invalidate [line: 1511, column: 10, file: SmartCL.Components]").FDirty$1) {
         $Check(Self," in TW3GraphicControl.Invalidate [line: 1512, column: 5, file: SmartCL.Components]").FDirty$1 = true;
         TW3AnimationFrame.ScheduleRefresh(Self);
      }
   }
   /// function TW3GraphicControl.MakeElementTagObj() : THandle
   ///  [line: 1489, column: 28, file: SmartCL.Components]
   ,MakeElementTagObj:function(Self) {
      return w3_createHtmlElement("canvas");
   }
   /// procedure TW3GraphicControl.Paint()
   ///  [line: 1494, column: 29, file: SmartCL.Components]
   ,Paint:function(Self) {
      if ($Check(Self," in TW3GraphicControl.Paint [line: 1496, column: 15, file: SmartCL.Components]").FOnPaint) {
         $CheckFunc($Check(Self," in TW3GraphicControl.Paint [line: 1497, column: 5, file: SmartCL.Components]").FOnPaint," in TW3GraphicControl.Paint [line: 1497, column: 13, file: SmartCL.Components]")(Self,$Check(Self," in TW3GraphicControl.Paint [line: 1497, column: 20, file: SmartCL.Components]").FCanvas);
      }
   }
   /// procedure TW3GraphicControl.Refresh()
   ///  [line: 1517, column: 29, file: SmartCL.Components]
   ,Refresh:function(Self) {
      $Check(Self," in TW3GraphicControl.Refresh [line: 1519, column: 3, file: SmartCL.Components]").FDirty$1 = false;
      if ((((!TW3TagObj.GetUpdating(Self))&&($Check(Self," in TW3GraphicControl.Refresh [line: 1520, column: 26, file: SmartCL.Components]").FCanvas!==null))&&($Check(Self," in TW3GraphicControl.Refresh [line: 1520, column: 47, file: SmartCL.Components]").FContext$2!==null))&&TW3MovableControl.GetVisible($Check(Self," in TW3GraphicControl.Refresh [line: 1520, column: 74, file: SmartCL.Components]"))) {
         TW3GraphicControl.Paint$($Check(Self," in TW3GraphicControl.Refresh [line: 1521, column: 5, file: SmartCL.Components]"));
      }
   }
   /// procedure TW3GraphicControl.Resize()
   ///  [line: 1500, column: 29, file: SmartCL.Components]
   ,Resize:function(Self) {
      TW3MovableControl.Resize(Self);
      w3_setAttrib($Check(Self," in TW3GraphicControl.Resize [line: 1505, column: 16, file: SmartCL.Components]").FHandle,"width",w3_getStyle($Check(Self," in TW3GraphicControl.Resize [line: 1505, column: 45, file: SmartCL.Components]").FHandle,"width"));
      w3_setAttrib($Check(Self," in TW3GraphicControl.Resize [line: 1506, column: 16, file: SmartCL.Components]").FHandle,"height",w3_getStyle($Check(Self," in TW3GraphicControl.Resize [line: 1506, column: 46, file: SmartCL.Components]").FHandle,"height"));
   }
   /// procedure TW3GraphicControl.SetHeight(aValue: Integer)
   ///  [line: 1480, column: 29, file: SmartCL.Components]
   ,SetHeight:function(Self, aValue$50) {
      TW3MovableControl.SetHeight(Self,aValue$50);
      if ($Check(Self," in TW3GraphicControl.SetHeight [line: 1483, column: 7, file: SmartCL.Components]").FHandle) {
         w3_setAttrib($Check(Self," in TW3GraphicControl.SetHeight [line: 1484, column: 18, file: SmartCL.Components]").FHandle,"height",TInteger.ToPxStr(aValue$50));
      } else {
         EW3TagObj.RaiseCntErrMethod("TW3GraphicControl.SetHeight",Self,"invalid control handle error");
      }
   }
   /// procedure TW3GraphicControl.SetWidth(aValue: Integer)
   ///  [line: 1471, column: 29, file: SmartCL.Components]
   ,SetWidth:function(Self, aValue$51) {
      TW3MovableControl.SetWidth(Self,aValue$51);
      if ($Check(Self," in TW3GraphicControl.SetWidth [line: 1474, column: 7, file: SmartCL.Components]").FHandle) {
         w3_setAttrib($Check(Self," in TW3GraphicControl.SetWidth [line: 1475, column: 18, file: SmartCL.Components]").FHandle,"width",TInteger.ToPxStr(aValue$51));
      } else {
         EW3TagObj.RaiseCntErrMethod("TW3GraphicControl.SetWidth",Self,"invalid control handle error");
      }
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj$:function($){return $.ClassType.MakeElementTagObj($)}
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize$:function($){return $.ClassType.Resize($)}
   ,SetHeight$:function($){return $.ClassType.SetHeight.apply($.ClassType, arguments)}
   ,SetWidth$:function($){return $.ClassType.SetWidth.apply($.ClassType, arguments)}
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate$:function($){return $.ClassType.Invalidate($)}
   ,SetEnabled:TW3CustomControl.SetEnabled
   ,Paint$:function($){return $.ClassType.Paint($)}
};
/// TW3ControlSizeInfo = record
///  [line: 106, column: 3, file: SmartCL.Components]
function Copy$TW3ControlSizeInfo(s,d) {
   return d;
}
function Clone$TW3ControlSizeInfo($) {
   return {

   }
}
/// TW3CustomFont = class (TObject)
///  [line: 25, column: 3, file: SmartCL.Fonts]
var TW3CustomFont = {
   $ClassName:"TW3CustomFont",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FOnChange = null;
   }
   /// function TW3CustomFont.GetColor() : TColor
   ///  [line: 119, column: 24, file: SmartCL.Fonts]
   ,GetColor$1:function(Self) {
      var Result = {v:0};
      try {
         var mRef$5 = undefined;
         var mText$2 = "";
         mRef$5 = TW3CustomFont.GetHandle$4$($Check(Self," in TW3CustomFont.GetColor [line: 124, column: 11, file: SmartCL.Fonts]"));
         if (mRef$5) {
            mText$2 = ""+w3_getCssStyle(mRef$5,"color");
            Result.v = StrToColor(mText$2);
         } else {
            throw EW3Exception.CreateFmt($New(EW3FontError),$R[0],["TW3CustomFont.GetColor", TObject.ClassName($Check(Self," in TW3CustomFont.GetColor [line: 130, column: 68, file: SmartCL.Fonts]").ClassType), $R[4]]);
         }
      } finally {return Result.v}
   }
   /// function TW3CustomFont.GetName() : String
   ///  [line: 65, column: 24, file: SmartCL.Fonts]
   ,GetName:function(Self) {
      var Result = "";
      var mHandle = undefined;
      mHandle = TW3CustomFont.GetHandle$4$($Check(Self," in TW3CustomFont.GetName [line: 69, column: 14, file: SmartCL.Fonts]"));
      if (mHandle) {
         Result = ""+w3_getCssStyle(mHandle,"font-family");
      } else {
         throw EW3Exception.CreateFmt($New(EW3FontError),$R[0],["TW3CustomFont.GetName", TObject.ClassName($Check(Self," in TW3CustomFont.GetName [line: 73, column: 68, file: SmartCL.Fonts]").ClassType), $R[4]]);
      }
      return Result
   }
   /// function TW3CustomFont.GetSize() : Integer
   ///  [line: 92, column: 24, file: SmartCL.Fonts]
   ,GetSize:function(Self) {
      var Result = 0;
      var mRef$6 = undefined;
      mRef$6 = TW3CustomFont.GetHandle$4$($Check(Self," in TW3CustomFont.GetSize [line: 96, column: 11, file: SmartCL.Fonts]"));
      if (mRef$6) {
         Result = w3_getCssStyleAsInteger(mRef$6,"font-size");
      } else {
         throw EW3Exception.CreateFmt($New(EW3FontError),$R[0],["TW3CustomFont.GetSize", TObject.ClassName($Check(Self," in TW3CustomFont.GetSize [line: 100, column: 68, file: SmartCL.Fonts]").ClassType), $R[4]]);
      }
      return Result
   }
   /// function TW3CustomFont.GetWeight() : String
   ///  [line: 149, column: 24, file: SmartCL.Fonts]
   ,GetWeight:function(Self) {
      var Result = "";
      var mRef$7 = undefined;
      mRef$7 = TW3CustomFont.GetHandle$4$($Check(Self," in TW3CustomFont.GetWeight [line: 153, column: 11, file: SmartCL.Fonts]"));
      if (mRef$7) {
         Result = ""+w3_getCssStyle(mRef$7,"font-weight");
      } else {
         throw EW3Exception.CreateFmt($New(EW3FontError),$R[0],["TW3CustomFont.GetWeight", TObject.ClassName($Check(Self," in TW3CustomFont.GetWeight [line: 157, column: 68, file: SmartCL.Fonts]").ClassType), $R[4]]);
      }
      return Result
   }
   /// procedure TW3CustomFont.SetColor(aNewColor: TColor)
   ///  [line: 134, column: 25, file: SmartCL.Fonts]
   ,SetColor$2:function(Self, aNewColor) {
      var mRef$8 = undefined;
      mRef$8 = TW3CustomFont.GetHandle$4$($Check(Self," in TW3CustomFont.SetColor [line: 138, column: 11, file: SmartCL.Fonts]"));
      if (mRef$8) {
         w3_setCssStyle(mRef$8,"color",ColorToWebStr(aNewColor,255));
         if ($Check(Self," in TW3CustomFont.SetColor [line: 142, column: 17, file: SmartCL.Fonts]").FOnChange) {
            $CheckFunc($Check(Self," in TW3CustomFont.SetColor [line: 143, column: 7, file: SmartCL.Fonts]").FOnChange," in TW3CustomFont.SetColor [line: 143, column: 16, file: SmartCL.Fonts]")(Self);
         }
      } else {
         throw EW3Exception.CreateFmt($New(EW3FontError),$R[0],["TW3CustomFont.SetColor", TObject.ClassName($Check(Self," in TW3CustomFont.SetColor [line: 145, column: 68, file: SmartCL.Fonts]").ClassType), $R[4]]);
      }
   }
   /// procedure TW3CustomFont.SetName(aNewName: String)
   ///  [line: 77, column: 25, file: SmartCL.Fonts]
   ,SetName$1:function(Self, aNewName) {
      var mHandle$1 = undefined;
      mHandle$1 = TW3CustomFont.GetHandle$4$($Check(Self," in TW3CustomFont.SetName [line: 81, column: 14, file: SmartCL.Fonts]"));
      if (mHandle$1) {
         w3_setCssStyle(mHandle$1,"font-family",aNewName);
         if ($Check(Self," in TW3CustomFont.SetName [line: 85, column: 17, file: SmartCL.Fonts]").FOnChange) {
            $CheckFunc($Check(Self," in TW3CustomFont.SetName [line: 86, column: 7, file: SmartCL.Fonts]").FOnChange," in TW3CustomFont.SetName [line: 86, column: 16, file: SmartCL.Fonts]")(Self);
         }
      } else {
         throw EW3Exception.CreateFmt($New(EW3FontError),$R[0],["TW3CustomFont.SetName", TObject.ClassName($Check(Self," in TW3CustomFont.SetName [line: 88, column: 68, file: SmartCL.Fonts]").ClassType), $R[4]]);
      }
   }
   /// procedure TW3CustomFont.SetSize(aNewSize: Integer)
   ///  [line: 104, column: 25, file: SmartCL.Fonts]
   ,SetSize$5:function(Self, aNewSize) {
      var mRef$9 = undefined;
      mRef$9 = TW3CustomFont.GetHandle$4$($Check(Self," in TW3CustomFont.SetSize [line: 108, column: 11, file: SmartCL.Fonts]"));
      if (mRef$9) {
         w3_setCssStyle(mRef$9,"font-size",TInteger.ToPxStr(aNewSize));
         if ($Check(Self," in TW3CustomFont.SetSize [line: 112, column: 17, file: SmartCL.Fonts]").FOnChange) {
            $CheckFunc($Check(Self," in TW3CustomFont.SetSize [line: 113, column: 7, file: SmartCL.Fonts]").FOnChange," in TW3CustomFont.SetSize [line: 113, column: 16, file: SmartCL.Fonts]")(Self);
         }
      } else {
         throw EW3Exception.CreateFmt($New(EW3FontError),$R[0],["TW3CustomFont.SetSize", TObject.ClassName($Check(Self," in TW3CustomFont.SetSize [line: 115, column: 68, file: SmartCL.Fonts]").ClassType), $R[4]]);
      }
   }
   /// procedure TW3CustomFont.SetWeight(aNewWeight: String)
   ///  [line: 161, column: 25, file: SmartCL.Fonts]
   ,SetWeight:function(Self, aNewWeight) {
      var mRef$10 = undefined;
      mRef$10 = TW3CustomFont.GetHandle$4$($Check(Self," in TW3CustomFont.SetWeight [line: 165, column: 11, file: SmartCL.Fonts]"));
      if (mRef$10) {
         w3_setCssStyle(mRef$10,"font-weight",aNewWeight);
         if ($Check(Self," in TW3CustomFont.SetWeight [line: 169, column: 17, file: SmartCL.Fonts]").FOnChange) {
            $CheckFunc($Check(Self," in TW3CustomFont.SetWeight [line: 170, column: 7, file: SmartCL.Fonts]").FOnChange," in TW3CustomFont.SetWeight [line: 170, column: 16, file: SmartCL.Fonts]")(Self);
         }
      } else {
         throw EW3Exception.CreateFmt($New(EW3FontError),$R[0],["TW3CustomFont.SetWeight", TObject.ClassName($Check(Self," in TW3CustomFont.SetWeight [line: 172, column: 68, file: SmartCL.Fonts]").ClassType), $R[4]]);
      }
   }
   ,Destroy:TObject.Destroy
   ,GetHandle$4$:function($){return $.ClassType.GetHandle$4($)}
};
/// TW3ControlFont = class (TW3CustomFont)
///  [line: 234, column: 3, file: SmartCL.Components]
var TW3ControlFont = {
   $ClassName:"TW3ControlFont",
   $Parent:TW3CustomFont
   ,$Init:function ($) {
      TW3CustomFont.$Init($);
      $.FOwner$3 = null;
   }
   /// function TW3ControlFont.GetHandle() : THandle
   ///  [line: 1345, column: 25, file: SmartCL.Components]
   ,GetHandle$4:function(Self) {
      return $Check($Check(Self," in TW3ControlFont.GetHandle [line: 1347, column: 13, file: SmartCL.Components]").FOwner$3," in TW3ControlFont.GetHandle [line: 1347, column: 20, file: SmartCL.Components]").FHandle;
   }
   /// constructor TW3ControlFont.Create(AOwner: TW3CustomControl)
   ///  [line: 1336, column: 28, file: SmartCL.Components]
   ,Create$36:function(Self, AOwner$4) {
      TObject.Create(Self);
      if (AOwner$4) {
         $Check(Self," in TW3ControlFont.Create [line: 1340, column: 5, file: SmartCL.Components]").FOwner$3 = AOwner$4;
      } else {
         EW3TagObj.RaiseCntErrMethod("TW3ControlFont.Create",Self,"Owner was nil error");
      }
      return Self
   }
   ,Destroy:TObject.Destroy
   ,GetHandle$4$:function($){return $.ClassType.GetHandle$4($)}
};
/// TW3ControlBackground = class (TW3OwnedObject)
///  [line: 245, column: 3, file: SmartCL.Components]
var TW3ControlBackground = {
   $ClassName:"TW3ControlBackground",
   $Parent:TW3OwnedObject
   ,$Init:function ($) {
      TW3OwnedObject.$Init($);
   }
   /// function TW3ControlBackground.AcceptParent(aObject: TObject) : Boolean
   ///  [line: 813, column: 31, file: SmartCL.Components]
   ,AcceptParent:function(Self, aObject$2) {
      return (aObject$2!==null)&&$Is(aObject$2,TW3MovableControl);
   }
   ,Destroy:TObject.Destroy
   ,AcceptParent$:function($){return $.ClassType.AcceptParent.apply($.ClassType, arguments)}
   ,Create$4:TW3OwnedObject.Create$4
};
/// TW3Constraints = class (TW3OwnedObject)
///  [line: 256, column: 3, file: SmartCL.Components]
var TW3Constraints = {
   $ClassName:"TW3Constraints",
   $Parent:TW3OwnedObject
   ,$Init:function ($) {
      TW3OwnedObject.$Init($);
   }
   /// function TW3Constraints.AcceptParent(aObject: TObject) : Boolean
   ///  [line: 732, column: 26, file: SmartCL.Components]
   ,AcceptParent:function(Self, aObject$3) {
      return (aObject$3!==null)&&$Is(aObject$3,TW3TagObj);
   }
   /// function TW3Constraints.GetMaxHeight() : Integer
   ///  [line: 782, column: 26, file: SmartCL.Components]
   ,GetMaxHeight:function(Self) {
      var Result = 0;
      var mRef$11 = undefined;
      mRef$11 = $Check($As($Check(Self," in TW3Constraints.GetMaxHeight [line: 786, column: 29, file: SmartCL.Components]").FOwner,TW3MovableControl)," in TW3Constraints.GetMaxHeight [line: 786, column: 36, file: SmartCL.Components]").FHandle;
      if (mRef$11) {
         Result = w3_getStyleAsInt(mRef$11,"max-height");
      }
      return Result
   }
   /// function TW3Constraints.GetMaxWidth() : Integer
   ///  [line: 773, column: 26, file: SmartCL.Components]
   ,GetMaxWidth:function(Self) {
      var Result = 0;
      var mRef$12 = undefined;
      mRef$12 = $Check($As($Check(Self," in TW3Constraints.GetMaxWidth [line: 777, column: 29, file: SmartCL.Components]").FOwner,TW3MovableControl)," in TW3Constraints.GetMaxWidth [line: 777, column: 36, file: SmartCL.Components]").FHandle;
      if (mRef$12) {
         Result = w3_getStyleAsInt(mRef$12,"max-width");
      }
      return Result
   }
   /// function TW3Constraints.GetMinHeight() : Integer
   ///  [line: 746, column: 26, file: SmartCL.Components]
   ,GetMinHeight:function(Self) {
      var Result = 0;
      var mRef$13 = undefined;
      mRef$13 = $Check($As($Check(Self," in TW3Constraints.GetMinHeight [line: 750, column: 29, file: SmartCL.Components]").FOwner,TW3MovableControl)," in TW3Constraints.GetMinHeight [line: 750, column: 36, file: SmartCL.Components]").FHandle;
      if (mRef$13) {
         Result = w3_getStyleAsInt(mRef$13,"min-height");
      }
      return Result
   }
   /// function TW3Constraints.GetMinWidth() : Integer
   ///  [line: 737, column: 26, file: SmartCL.Components]
   ,GetMinWidth:function(Self) {
      var Result = 0;
      var mRef$14 = undefined;
      mRef$14 = $Check($As($Check(Self," in TW3Constraints.GetMinWidth [line: 741, column: 29, file: SmartCL.Components]").FOwner,TW3MovableControl)," in TW3Constraints.GetMinWidth [line: 741, column: 36, file: SmartCL.Components]").FHandle;
      if (mRef$14) {
         Result = w3_getStyleAsInt(mRef$14,"min-width");
      }
      return Result
   }
   /// procedure TW3Constraints.SetMaxHeight(aValue: Integer)
   ///  [line: 800, column: 26, file: SmartCL.Components]
   ,SetMaxHeight:function(Self, aValue$52) {
      var mRef$15 = undefined;
      mRef$15 = $Check($As($Check(Self," in TW3Constraints.SetMaxHeight [line: 804, column: 29, file: SmartCL.Components]").FOwner,TW3MovableControl)," in TW3Constraints.SetMaxHeight [line: 804, column: 36, file: SmartCL.Components]").FHandle;
      if (mRef$15) {
         mRef$15.style["max-width"] = TInteger.ToPxStr(aValue$52);
      }
   }
   /// procedure TW3Constraints.SetMaxWidth(aValue: Integer)
   ///  [line: 791, column: 26, file: SmartCL.Components]
   ,SetMaxWidth:function(Self, aValue$53) {
      var mRef$16 = undefined;
      mRef$16 = $Check($As($Check(Self," in TW3Constraints.SetMaxWidth [line: 795, column: 29, file: SmartCL.Components]").FOwner,TW3MovableControl)," in TW3Constraints.SetMaxWidth [line: 795, column: 36, file: SmartCL.Components]").FHandle;
      if (mRef$16) {
         mRef$16.style["max-width"] = TInteger.ToPxStr(aValue$53);
      }
   }
   /// procedure TW3Constraints.SetMinHeight(aValue: Integer)
   ///  [line: 764, column: 26, file: SmartCL.Components]
   ,SetMinHeight:function(Self, aValue$54) {
      var mRef$17 = undefined;
      mRef$17 = $Check($As($Check(Self," in TW3Constraints.SetMinHeight [line: 768, column: 29, file: SmartCL.Components]").FOwner,TW3MovableControl)," in TW3Constraints.SetMinHeight [line: 768, column: 36, file: SmartCL.Components]").FHandle;
      if (mRef$17) {
         mRef$17.style["min-height"] = TInteger.ToPxStr(aValue$54);
      }
   }
   /// procedure TW3Constraints.SetMinWidth(aValue: Integer)
   ///  [line: 755, column: 26, file: SmartCL.Components]
   ,SetMinWidth:function(Self, aValue$55) {
      var mRef$18 = undefined;
      mRef$18 = $Check($As($Check(Self," in TW3Constraints.SetMinWidth [line: 759, column: 29, file: SmartCL.Components]").FOwner,TW3MovableControl)," in TW3Constraints.SetMinWidth [line: 759, column: 36, file: SmartCL.Components]").FHandle;
      if (mRef$18) {
         mRef$18.style["min-width"] = TInteger.ToPxStr(aValue$55);
      }
   }
   ,Destroy:TObject.Destroy
   ,AcceptParent$:function($){return $.ClassType.AcceptParent.apply($.ClassType, arguments)}
   ,Create$4:TW3OwnedObject.Create$4
};
/// TW3AnimationFrame = class (TObject)
///  [line: 580, column: 3, file: SmartCL.Components]
var TW3AnimationFrame = {
   $ClassName:"TW3AnimationFrame",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
   }
   /// procedure TW3AnimationFrame.Perform()
   ///  [line: 706, column: 35, file: SmartCL.Components]
   ,Perform:function() {
      var i$2 = 0;
      var callbacks = [];
      var controls = [];
      if (vScheduledCallbacks.length>0) {
         callbacks = vScheduledCallbacks;
         vScheduledCallbacks = [];
         var $temp20;
         for(i$2 = 0,$temp20 = callbacks.length;i$2<$temp20;i$2++) {
            $CheckFunc($DIdxR(callbacks,i$2," in TW3AnimationFrame.Perform [line: 715, column: 19, file: SmartCL.Components]")," in TW3AnimationFrame.Perform [line: 715, column: 19, file: SmartCL.Components]")();
         }
      }
      if (vScheduledControls.length>0) {
         controls = vScheduledControls;
         vScheduledControls = [];
         var $temp21;
         for(i$2 = 0,$temp21 = controls.length;i$2<$temp21;i$2++) {
            TW3GraphicControl.Refresh($DIdxR(controls,i$2," in TW3AnimationFrame.Perform [line: 722, column: 18, file: SmartCL.Components]"));
         }
      }
      var $temp22;
      for(i$2 = 0,$temp22 = vOnPerform.length;i$2<$temp22;i$2++) {
         $CheckFunc($DIdxR(vOnPerform,i$2," in TW3AnimationFrame.Perform [line: 725, column: 18, file: SmartCL.Components]")," in TW3AnimationFrame.Perform [line: 725, column: 18, file: SmartCL.Components]")();
      }
   }
   /// procedure TW3AnimationFrame.ScheduleRefresh(control: TW3GraphicControl)
   ///  [line: 692, column: 35, file: SmartCL.Components]
   ,ScheduleRefresh:function(control) {
      vScheduledControls.push(control);
      if (!vPending) {
         w3_RequestAnimationFrame(TW3AnimationFrame.Perform);
      }
   }
   ,Destroy:TObject.Destroy
};
/// TShiftStateEnum enumeration
///  [line: 40, column: 3, file: SmartCL.Components]
var TShiftStateEnum = [ "ssShift", "ssAlt", "ssCtrl", "ssMeta", "ssLeft", "ssRight", "ssMiddle" ];
/// TShiftState = class (TObject)
///  [line: 46, column: 3, file: SmartCL.Components]
var TShiftState = {
   $ClassName:"TShiftState",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FEvent = $.FMouseEvent = null;
      $.FMouseButtons = 0;
   }
   /// function TShiftState.CheckShiftStateEnum(value: TShiftStateEnum) : Boolean
   ///  [line: 639, column: 22, file: SmartCL.Components]
   ,CheckShiftStateEnum:function(Self, value$3) {
      var Result = false;
      if ($Check(Self," in TShiftState.CheckShiftStateEnum [line: 641, column: 6, file: SmartCL.Components]").FEvent===null) {
         Result = false;
      } else {
         switch (value$3) {
            case 0 :
               Result = $Check($Check(Self," in TShiftState.CheckShiftStateEnum [line: 645, column: 26, file: SmartCL.Components]").FEvent," in TShiftState.CheckShiftStateEnum [line: 645, column: 33, file: SmartCL.Components]").shiftKey;
               break;
            case 1 :
               Result = $Check($Check(Self," in TShiftState.CheckShiftStateEnum [line: 646, column: 24, file: SmartCL.Components]").FEvent," in TShiftState.CheckShiftStateEnum [line: 646, column: 31, file: SmartCL.Components]").altKey;
               break;
            case 2 :
               Result = $Check($Check(Self," in TShiftState.CheckShiftStateEnum [line: 647, column: 25, file: SmartCL.Components]").FEvent," in TShiftState.CheckShiftStateEnum [line: 647, column: 32, file: SmartCL.Components]").ctrlKey;
               break;
            case 3 :
               Result = $Check($Check(Self," in TShiftState.CheckShiftStateEnum [line: 648, column: 25, file: SmartCL.Components]").FEvent," in TShiftState.CheckShiftStateEnum [line: 648, column: 32, file: SmartCL.Components]").metaKey;
               break;
            case 4 :
               Result = (($Check(Self," in TShiftState.CheckShiftStateEnum [line: 649, column: 27, file: SmartCL.Components]").FMouseButtons&1)!=0);
               break;
            case 5 :
               Result = (($Check(Self," in TShiftState.CheckShiftStateEnum [line: 650, column: 28, file: SmartCL.Components]").FMouseButtons&4)!=0);
               break;
            case 6 :
               Result = (($Check(Self," in TShiftState.CheckShiftStateEnum [line: 651, column: 29, file: SmartCL.Components]").FMouseButtons&2)!=0);
               break;
         }
      }
      return Result
   }
   /// function TShiftState.Current() : TShiftState
   ///  [line: 667, column: 28, file: SmartCL.Components]
   ,Current:function() {
      var Result = null;
      if (vCurrent===null) {
         vCurrent = TObject.Create($New(TShiftState));
      }
      Result = vCurrent;
      return Result
   }
   /// procedure TShiftState.SetKeyStateEvent(evt: JKeyStateEvent)
   ///  [line: 655, column: 23, file: SmartCL.Components]
   ,SetKeyStateEvent:function(Self, evt$8) {
      $Check(Self," in TShiftState.SetKeyStateEvent [line: 657, column: 3, file: SmartCL.Components]").FEvent = evt$8;
      $Check(Self," in TShiftState.SetKeyStateEvent [line: 658, column: 3, file: SmartCL.Components]").FMouseEvent = null;
   }
   /// procedure TShiftState.SetMouseEvent(evt: JMouseEvent)
   ///  [line: 661, column: 23, file: SmartCL.Components]
   ,SetMouseEvent:function(Self, evt$9) {
      $Check(Self," in TShiftState.SetMouseEvent [line: 663, column: 3, file: SmartCL.Components]").FEvent = evt$9;
      $Check(Self," in TShiftState.SetMouseEvent [line: 664, column: 3, file: SmartCL.Components]").FMouseEvent = evt$9;
   }
   ,Destroy:TObject.Destroy
};
/// TMouseButton enumeration
///  [line: 38, column: 3, file: SmartCL.Components]
var TMouseButton = [ "mbLeft", "mbMiddle", "mbRight" ];
/// TCustomAppContainer = class (TW3Component)
///  [line: 199, column: 3, file: SmartCL.Components]
var TCustomAppContainer = {
   $ClassName:"TCustomAppContainer",
   $Parent:TW3Component
   ,$Init:function ($) {
      TW3Component.$Init($);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3TagObj.AfterUpdate
   ,FinalizeObject:TW3Component.FinalizeObject
   ,InitializeObject:TW3Component.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3TagObj.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3Component.Create$18
};
/// TDocumentBody = class (TCustomAppContainer)
///  [line: 207, column: 3, file: SmartCL.Components]
var TDocumentBody = {
   $ClassName:"TDocumentBody",
   $Parent:TCustomAppContainer
   ,$Init:function ($) {
      TCustomAppContainer.$Init($);
   }
   /// function TDocumentBody.GetHeight() : Integer
   ///  [line: 1326, column: 24, file: SmartCL.Components]
   ,GetHeight$5:function(Self) {
      return parseInt(window.innerHeight,10);
   }
   /// function TDocumentBody.GetWidth() : Integer
   ///  [line: 1321, column: 24, file: SmartCL.Components]
   ,GetWidth$5:function(Self) {
      return parseInt(window.innerWidth,10);
   }
   /// function TDocumentBody.makeElementTagId() : String
   ///  [line: 1264, column: 24, file: SmartCL.Components]
   ,MakeElementTagId:function(Self) {
      return "";
   }
   /// function TDocumentBody.makeElementTagObj() : THandle
   ///  [line: 1288, column: 24, file: SmartCL.Components]
   ,MakeElementTagObj:function(Self) {
      return document.body;
   }
   /// procedure TDocumentBody.StyleTagObject()
   ///  [line: 1259, column: 25, file: SmartCL.Components]
   ,StyleTagObject:function(Self) {
      /* null */
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3TagObj.AfterUpdate
   ,FinalizeObject:TW3Component.FinalizeObject
   ,InitializeObject:TW3Component.InitializeObject
   ,MakeElementTagId$:function($){return $.ClassType.MakeElementTagId($)}
   ,MakeElementTagObj$:function($){return $.ClassType.MakeElementTagObj($)}
   ,StyleTagObject$:function($){return $.ClassType.StyleTagObject($)}
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3Component.Create$18
};
/// EW3TagObj = class (EW3Exception)
///  [line: 30, column: 3, file: SmartCL.Components]
var EW3TagObj = {
   $ClassName:"EW3TagObj",
   $Parent:EW3Exception
   ,$Init:function ($) {
      EW3Exception.$Init($);
   }
   /// procedure EW3TagObj.RaiseCntErrMethod(methName: String; instance: TObject; msg: String)
   ///  [line: 629, column: 27, file: SmartCL.Components]
   ,RaiseCntErrMethod:function(methName, instance, msg) {
      throw EW3Exception.CreateFmt($New(EW3TagObj),$R[0],[methName, (instance!==null)?TObject.ClassName($Check(instance," in EW3TagObj.RaiseCntErrMethod [line: 632, column: 38, file: SmartCL.Components]").ClassType):"nil", msg]);
   }
   ,Destroy:Exception.Destroy
};
/// TObjectList = class (TObject)
///  [line: 56, column: 3, file: System.Lists]
var TObjectList = {
   $ClassName:"TObjectList",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FData$1 = [];
      $.FOnAdded$1 = null;
      $.FOnClear$1 = null;
      $.FOnDeleted$1 = null;
   }
   /// function TObjectList.Add(Value: TObject) : Integer
   ///  [line: 138, column: 22, file: System.Lists]
   ,Add$1:function(Self, Value$8) {
      var Result = 0;
      Result = $Check(Self," in TObjectList.Add [line: 140, column: 13, file: System.Lists]").FData$1.length;
      $Check(Self," in TObjectList.Add [line: 141, column: 3, file: System.Lists]").FData$1.push(Value$8);
      if ($Check(Self," in TObjectList.Add [line: 142, column: 15, file: System.Lists]").FOnAdded$1) {
         $CheckFunc($Check(Self," in TObjectList.Add [line: 143, column: 5, file: System.Lists]").FOnAdded$1," in TObjectList.Add [line: 143, column: 13, file: System.Lists]")(Self);
      }
      return Result
   }
   /// procedure TObjectList.Clear()
   ///  [line: 116, column: 23, file: System.Lists]
   ,Clear$2:function(Self) {
      $Check(Self," in TObjectList.Clear [line: 118, column: 3, file: System.Lists]").FData$1.length=0;
      if ($Check(Self," in TObjectList.Clear [line: 119, column: 15, file: System.Lists]").FOnClear$1) {
         $CheckFunc($Check(Self," in TObjectList.Clear [line: 120, column: 5, file: System.Lists]").FOnClear$1," in TObjectList.Clear [line: 120, column: 13, file: System.Lists]")(Self);
      }
   }
   /// constructor TObjectList.Create()
   ///  [line: 88, column: 25, file: System.Lists]
   ,Create$38:function(Self) {
      TObject.Create(Self);
      return Self
   }
   /// destructor TObjectList.Destroy()
   ///  [line: 93, column: 24, file: System.Lists]
   ,Destroy:function(Self) {
      $Check(Self," in TObjectList.Destroy [line: 95, column: 3, file: System.Lists]").FData$1.length=0;
      TObject.Destroy(Self);
   }
   /// function TObjectList.GetCount() : Integer
   ///  [line: 123, column: 22, file: System.Lists]
   ,GetCount$1:function(Self) {
      return $Check(Self," in TObjectList.GetCount [line: 125, column: 13, file: System.Lists]").FData$1.length;
   }
   /// function TObjectList.GetItem(index: Integer) : TObject
   ///  [line: 128, column: 22, file: System.Lists]
   ,GetItem$5:function(Self, index$1) {
      return $DIdxR($Check(Self," in TObjectList.GetItem [line: 130, column: 13, file: System.Lists]").FData$1,index$1," in TObjectList.GetItem [line: 130, column: 25, file: System.Lists]");
   }
   /// function TObjectList.IndexOf(Value: TObject) : Integer
   ///  [line: 106, column: 22, file: System.Lists]
   ,IndexOf$1:function(Self, Value$9) {
      return $Check(Self," in TObjectList.IndexOf [line: 108, column: 13, file: System.Lists]").FData$1.indexOf(Value$9);
   }
   /// procedure TObjectList.Insert(Index: Integer; Value: TObject)
   ///  [line: 146, column: 23, file: System.Lists]
   ,Insert$2:function(Self, Index, Value$10) {
      $ArrayInsert($Check(Self," in TObjectList.Insert [line: 148, column: 3, file: System.Lists]").FData$1,Index,Value$10," in TObjectList.Insert [line: 148, column: 9, file: System.Lists]");
   }
   /// procedure TObjectList.Remove(ondex: Integer)
   ///  [line: 99, column: 23, file: System.Lists]
   ,Remove$1:function(Self, ondex) {
      $Check(Self," in TObjectList.Remove [line: 101, column: 3, file: System.Lists]").FData$1.splice(ondex,1)
      ;
      if ($Check(Self," in TObjectList.Remove [line: 102, column: 15, file: System.Lists]").FOnDeleted$1) {
         $CheckFunc($Check(Self," in TObjectList.Remove [line: 103, column: 6, file: System.Lists]").FOnDeleted$1," in TObjectList.Remove [line: 103, column: 16, file: System.Lists]")(Self);
      }
   }
   /// procedure TObjectList.SetItem(index: Integer; value: TObject)
   ///  [line: 133, column: 23, file: System.Lists]
   ,SetItem$1:function(Self, index$2, value$4) {
      $DIdxW($Check(Self," in TObjectList.SetItem [line: 135, column: 3, file: System.Lists]").FData$1,index$2,value$4," in TObjectList.SetItem [line: 135, column: 24, file: System.Lists]");
   }
   /// procedure TObjectList.Swap(aFirst: Integer; aSecond: Integer)
   ///  [line: 111, column: 23, file: System.Lists]
   ,Swap$1:function(Self, aFirst, aSecond) {
      $ArraySwapChk($Check(Self," in TObjectList.Swap [line: 113, column: 3, file: System.Lists]").FData$1,aFirst,aSecond," in TObjectList.Swap [line: 113, column: 9, file: System.Lists]");
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
};
/// TW3RGBA = record
///  [line: 175, column: 3, file: System.Colors]
function Copy$TW3RGBA(s,d) {
   d.A$55=s.A$55;
   d.B$1=s.B$1;
   d.G$1=s.G$1;
   d.R$1=s.R$1;
   return d;
}
function Clone$TW3RGBA($) {
   return {
      A$55:$.A$55,
      B$1:$.B$1,
      G$1:$.G$1,
      R$1:$.R$1
   }
}
function StrToColor(aColorStr) {
   aColorStr={v:aColorStr};
   var Result = {v:0};
   try {
      var mTemp = "";
      var xpos = 0;
      var r = 0;
      var g = 0;
      var b = 0;
      aColorStr.v = Trim$_String_(aColorStr.v);
      if (!aColorStr.v.length) {
         return Result.v;
      }
      if (($SIdx(aColorStr.v,1," in StrToColor [line: 278, column: 18, file: System.Colors]")=="#")||($SIdx(aColorStr.v,1," in StrToColor [line: 278, column: 40, file: System.Colors]")=="$")) {
         Result.v = parseInt("0x"+Trim$_String_Integer_Integer_(aColorStr.v,1,0),16);
      } else {
         if ((aColorStr.v).substr(0,2)=="0x") {
            Result.v = parseInt(aColorStr.v,16);
         } else if (((aColorStr.v).substr(0,4)).toLowerCase()=="rgb(") {
            aColorStr.v = Trim$_String_Integer_Integer_(aColorStr.v,4,0);
            try {
               xpos = (aColorStr.v.indexOf(",")+1);
               if (xpos>1) {
                  mTemp = aColorStr.v.substr(0,(xpos-1));
                  Delete(aColorStr,1,xpos);
                  if ($SIdx(mTemp,1," in StrToColor [line: 290, column: 19, file: System.Colors]")=="$") {
                     mTemp = "0x"+Trim$_String_Integer_Integer_(mTemp,1,0);
                  }
                  r = parseInt(mTemp,10);
               }
               xpos = (aColorStr.v.indexOf(",")+1);
               if (xpos>1) {
                  mTemp = aColorStr.v.substr(0,(xpos-1));
                  Delete(aColorStr,1,xpos);
                  if ($SIdx(mTemp,1," in StrToColor [line: 299, column: 19, file: System.Colors]")=="$") {
                     mTemp = "0x"+Trim$_String_Integer_Integer_(mTemp,1,0);
                  }
                  g = parseInt(mTemp,10);
               }
               xpos = (aColorStr.v.indexOf(")")+1);
               if (xpos>1) {
                  mTemp = aColorStr.v.substr(0,(xpos-1));
                  if ($SIdx(mTemp,1," in StrToColor [line: 307, column: 19, file: System.Colors]")=="$") {
                     mTemp = "0x"+Trim$_String_Integer_Integer_(mTemp,1,0);
                  }
                  b = parseInt(mTemp,10);
               }
               Result.v = RGBToColor(r,g,b);
            } catch ($e) {
               var e$6 = $W($e);
               return Result.v;
            }
         }
      }
   } finally {return Result.v}
};
function RGBToColor(aRed, aGreen, aBlue) {
   return (aBlue|(aGreen<<8))|(aRed<<16);
};
function ColorToWebStr(aColor, alpha) {
   return ColorToWebStr$1((aColor>>>16)&255,(aColor>>>8)&255,aColor&255,alpha);
};
function ColorToWebStr$1(r$1, g$1, b$17, a$57) {
   return (a$57==255)?"#"+IntToHex2(r$1)+IntToHex2(g$1)+IntToHex2(b$17):"rgba("+r$1.toString()+","+g$1.toString()+","+b$17.toString()+","+FloatToStr$_Float_(a$57/255)+")";
};
/// EW3FontError = class (EW3Exception)
///  [line: 22, column: 3, file: SmartCL.Fonts]
var EW3FontError = {
   $ClassName:"EW3FontError",
   $Parent:EW3Exception
   ,$Init:function ($) {
      EW3Exception.$Init($);
   }
   ,Destroy:Exception.Destroy
};
/// TW3TextMetrics = record
///  [line: 115, column: 3, file: SmartCL.Graphics]
function Copy$TW3TextMetrics(s,d) {
   return d;
}
function Clone$TW3TextMetrics($) {
   return {

   }
}
/// TW3ImageData = class (TObject)
///  [line: 140, column: 3, file: SmartCL.Graphics]
var TW3ImageData = {
   $ClassName:"TW3ImageData",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FHandle$1 = null;
   }
   /// procedure TW3ImageData.FromImageData(aImageDataRef: JImageData)
   ///  [line: 438, column: 24, file: SmartCL.Graphics]
   ,FromImageData:function(Self, aImageDataRef) {
      $Assert(aImageDataRef!==null,$R[13]+"reference was nil error"," in TW3ImageData.FromImageData [line: 440, column: 3, file: SmartCL.Graphics]");
      $Check(Self," in TW3ImageData.FromImageData [line: 441, column: 3, file: SmartCL.Graphics]").FHandle$1 = aImageDataRef;
   }
   ,Destroy:TObject.Destroy
};
/// TW3CustomGraphicContext = class (TObject)
///  [line: 28, column: 3, file: SmartCL.Graphics]
var TW3CustomGraphicContext = {
   $ClassName:"TW3CustomGraphicContext",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
   }
   /// procedure TW3CustomGraphicContext.Allocate(const aWidth: Integer; const aHeight: Integer)
   ///  [line: 774, column: 35, file: SmartCL.Graphics]
   ,Allocate:function(Self, aWidth$2, aHeight$2) {
      if (TW3CustomGraphicContext.GetOwnsReference$($Check(Self," in TW3CustomGraphicContext.Allocate [line: 776, column: 6, file: SmartCL.Graphics]"))) {
         if (VarIsValidRef(TW3CustomGraphicContext.GetDC$($Check(Self," in TW3CustomGraphicContext.Allocate [line: 778, column: 22, file: SmartCL.Graphics]")))) {
            TW3CustomGraphicContext.Release($Check(Self," in TW3CustomGraphicContext.Allocate [line: 779, column: 8, file: SmartCL.Graphics]"));
         }
         TW3CustomGraphicContext.SetSize$1$($Check(Self," in TW3CustomGraphicContext.Allocate [line: 780, column: 5, file: SmartCL.Graphics]"),aWidth$2,aHeight$2);
      } else {
         throw Exception.Create($New(Exception),"Cannot modify current graphics context");
      }
   }
   /// procedure TW3CustomGraphicContext.Release()
   ///  [line: 785, column: 35, file: SmartCL.Graphics]
   ,Release:function(Self) {
      if (TW3CustomGraphicContext.GetOwnsReference$($Check(Self," in TW3CustomGraphicContext.Release [line: 787, column: 6, file: SmartCL.Graphics]"))) {
         if (VarIsValidRef(TW3CustomGraphicContext.GetDC$($Check(Self," in TW3CustomGraphicContext.Release [line: 789, column: 22, file: SmartCL.Graphics]")))) {
            TW3CustomGraphicContext.ReleaseDC$($Check(Self," in TW3CustomGraphicContext.Release [line: 790, column: 5, file: SmartCL.Graphics]"));
         }
      } else {
         throw Exception.Create($New(Exception),"Cannot modify current graphics context");
      }
   }
   ,Destroy:TObject.Destroy
   ,GetDC$:function($){return $.ClassType.GetDC($)}
   ,GetHandle$:function($){return $.ClassType.GetHandle($)}
   ,GetHeight$1$:function($){return $.ClassType.GetHeight$1($)}
   ,GetOwnsReference$:function($){return $.ClassType.GetOwnsReference($)}
   ,GetWidth$1$:function($){return $.ClassType.GetWidth$1($)}
   ,ReleaseDC$:function($){return $.ClassType.ReleaseDC($)}
   ,SetSize$1$:function($){return $.ClassType.SetSize$1.apply($.ClassType, arguments)}
};
/// TW3GraphicContext = class (TW3CustomGraphicContext)
///  [line: 94, column: 3, file: SmartCL.Graphics]
var TW3GraphicContext = {
   $ClassName:"TW3GraphicContext",
   $Parent:TW3CustomGraphicContext
   ,$Init:function ($) {
      TW3CustomGraphicContext.$Init($);
      $.FObjId = "";
      $.FObjRef = undefined;
      $.FOwner$2 = undefined;
   }
   /// constructor TW3GraphicContext.Create(const AOwner: THandle)
   ///  [line: 812, column: 31, file: SmartCL.Graphics]
   ,Create$28:function(Self, AOwner$5) {
      TObject.Create(Self);
      $Check(Self," in TW3GraphicContext.Create [line: 817, column: 3, file: SmartCL.Graphics]").FObjRef = w3_createHtmlElement("canvas");
      $Check(Self," in TW3GraphicContext.Create [line: 820, column: 3, file: SmartCL.Graphics]").FObjId = w3_GetUniqueObjId();
      $Check(Self," in TW3GraphicContext.Create [line: 821, column: 3, file: SmartCL.Graphics]").FObjRef.id = $Check(Self," in TW3GraphicContext.Create [line: 821, column: 17, file: SmartCL.Graphics]").FObjId;
      $Check(Self," in TW3GraphicContext.Create [line: 824, column: 3, file: SmartCL.Graphics]").FOwner$2 = AOwner$5;
      if ($Check(Self," in TW3GraphicContext.Create [line: 828, column: 7, file: SmartCL.Graphics]").FOwner$2) {
         w3_setElementParentByRef($Check(Self," in TW3GraphicContext.Create [line: 829, column: 30, file: SmartCL.Graphics]").FObjRef,$Check(Self," in TW3GraphicContext.Create [line: 829, column: 39, file: SmartCL.Graphics]").FOwner$2);
      }
      return Self
   }
   /// destructor TW3GraphicContext.Destroy()
   ///  [line: 832, column: 30, file: SmartCL.Graphics]
   ,Destroy:function(Self) {
      if ($Check(Self," in TW3GraphicContext.Destroy [line: 835, column: 7, file: SmartCL.Graphics]").FOwner$2) {
         w3_RemoveElementByRef($Check(Self," in TW3GraphicContext.Destroy [line: 836, column: 27, file: SmartCL.Graphics]").FObjRef,$Check(Self," in TW3GraphicContext.Destroy [line: 836, column: 36, file: SmartCL.Graphics]").FOwner$2);
      }
      $Check(Self," in TW3GraphicContext.Destroy [line: 838, column: 3, file: SmartCL.Graphics]").FOwner$2 = null;
      $Check(Self," in TW3GraphicContext.Destroy [line: 839, column: 3, file: SmartCL.Graphics]").FObjRef = null;
      TObject.Destroy(Self);
   }
   /// function TW3GraphicContext.GetDC() : THandle
   ///  [line: 854, column: 28, file: SmartCL.Graphics]
   ,GetDC:function(Self) {
      var Result = undefined;
      if ($Check(Self," in TW3GraphicContext.GetDC [line: 856, column: 7, file: SmartCL.Graphics]").FObjRef) {
         Result = $Check(Self," in TW3GraphicContext.GetDC [line: 857, column: 15, file: SmartCL.Graphics]").FObjRef.getContext("2d");
      } else {
         Result = null;
      }
      return Result
   }
   /// function TW3GraphicContext.GetHandle() : THandle
   ///  [line: 844, column: 28, file: SmartCL.Graphics]
   ,GetHandle:function(Self) {
      return $Check(Self," in TW3GraphicContext.GetHandle [line: 846, column: 13, file: SmartCL.Graphics]").FObjRef;
   }
   /// function TW3GraphicContext.GetHeight() : Integer
   ///  [line: 877, column: 28, file: SmartCL.Graphics]
   ,GetHeight$1:function(Self) {
      var Result = 0;
      if ($Check(Self," in TW3GraphicContext.GetHeight [line: 879, column: 7, file: SmartCL.Graphics]").FObjRef) {
         Result = parseInt($Check(Self," in TW3GraphicContext.GetHeight [line: 880, column: 16, file: SmartCL.Graphics]").FObjRef.height,10);
      }
      return Result
   }
   /// function TW3GraphicContext.GetOwnsReference() : Boolean
   ///  [line: 849, column: 28, file: SmartCL.Graphics]
   ,GetOwnsReference:function(Self) {
      return true;
   }
   /// function TW3GraphicContext.GetWidth() : Integer
   ///  [line: 871, column: 28, file: SmartCL.Graphics]
   ,GetWidth$1:function(Self) {
      var Result = 0;
      if ($Check(Self," in TW3GraphicContext.GetWidth [line: 873, column: 7, file: SmartCL.Graphics]").FObjRef) {
         Result = parseInt($Check(Self," in TW3GraphicContext.GetWidth [line: 874, column: 15, file: SmartCL.Graphics]").FObjRef.width,10);
      }
      return Result
   }
   /// procedure TW3GraphicContext.ReleaseDC()
   ///  [line: 883, column: 29, file: SmartCL.Graphics]
   ,ReleaseDC:function(Self) {
      if ($Check(Self," in TW3GraphicContext.ReleaseDC [line: 885, column: 7, file: SmartCL.Graphics]").FObjRef) {
         $Check(Self," in TW3GraphicContext.ReleaseDC [line: 887, column: 5, file: SmartCL.Graphics]").FObjRef.width = 0;
         $Check(Self," in TW3GraphicContext.ReleaseDC [line: 888, column: 5, file: SmartCL.Graphics]").FObjRef.height = 0;
      }
   }
   /// procedure TW3GraphicContext.SetSize(aNewWidth: Integer; aNewHeight: Integer)
   ///  [line: 862, column: 29, file: SmartCL.Graphics]
   ,SetSize$1:function(Self, aNewWidth, aNewHeight) {
      if ($Check(Self," in TW3GraphicContext.SetSize [line: 864, column: 7, file: SmartCL.Graphics]").FObjRef) {
         $Check(Self," in TW3GraphicContext.SetSize [line: 866, column: 5, file: SmartCL.Graphics]").FObjRef.width = aNewWidth;
         $Check(Self," in TW3GraphicContext.SetSize [line: 867, column: 5, file: SmartCL.Graphics]").FObjRef.height = aNewHeight;
      }
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
   ,GetDC$:function($){return $.ClassType.GetDC($)}
   ,GetHandle$:function($){return $.ClassType.GetHandle($)}
   ,GetHeight$1$:function($){return $.ClassType.GetHeight$1($)}
   ,GetOwnsReference$:function($){return $.ClassType.GetOwnsReference($)}
   ,GetWidth$1$:function($){return $.ClassType.GetWidth$1($)}
   ,ReleaseDC$:function($){return $.ClassType.ReleaseDC($)}
   ,SetSize$1$:function($){return $.ClassType.SetSize$1.apply($.ClassType, arguments)}
};
/// TW3ControlGraphicContext = class (TW3CustomGraphicContext)
///  [line: 54, column: 3, file: SmartCL.Graphics]
var TW3ControlGraphicContext = {
   $ClassName:"TW3ControlGraphicContext",
   $Parent:TW3CustomGraphicContext
   ,$Init:function ($) {
      TW3CustomGraphicContext.$Init($);
      $.FCtrlTag = undefined;
   }
   /// constructor TW3ControlGraphicContext.Create(const aControlHandle: THandle)
   ///  [line: 726, column: 38, file: SmartCL.Graphics]
   ,Create$29:function(Self, aControlHandle) {
      TObject.Create(Self);
      if (aControlHandle) {
         $Check(Self," in TW3ControlGraphicContext.Create [line: 730, column: 5, file: SmartCL.Graphics]").FCtrlTag = aControlHandle;
      } else {
         throw Exception.Create($New(Exception),"Control handle is invalid error");
      }
      return Self
   }
   /// function TW3ControlGraphicContext.GetDC() : THandle
   ///  [line: 735, column: 35, file: SmartCL.Graphics]
   ,GetDC:function(Self) {
      return $Check(Self," in TW3ControlGraphicContext.GetDC [line: 737, column: 13, file: SmartCL.Graphics]").FCtrlTag.getContext("2d");
   }
   /// function TW3ControlGraphicContext.GetHandle() : THandle
   ///  [line: 740, column: 35, file: SmartCL.Graphics]
   ,GetHandle:function(Self) {
      return $Check(Self," in TW3ControlGraphicContext.GetHandle [line: 742, column: 13, file: SmartCL.Graphics]").FCtrlTag;
   }
   /// function TW3ControlGraphicContext.GetHeight() : Integer
   ///  [line: 750, column: 35, file: SmartCL.Graphics]
   ,GetHeight$1:function(Self) {
      return w3_getPropertyAsInt($Check(Self," in TW3ControlGraphicContext.GetHeight [line: 752, column: 33, file: SmartCL.Graphics]").FCtrlTag,"height");
   }
   /// function TW3ControlGraphicContext.GetOwnsReference() : Boolean
   ///  [line: 755, column: 35, file: SmartCL.Graphics]
   ,GetOwnsReference:function(Self) {
      return false;
   }
   /// function TW3ControlGraphicContext.GetWidth() : Integer
   ///  [line: 745, column: 35, file: SmartCL.Graphics]
   ,GetWidth$1:function(Self) {
      return w3_getPropertyAsInt($Check(Self," in TW3ControlGraphicContext.GetWidth [line: 747, column: 33, file: SmartCL.Graphics]").FCtrlTag,"width");
   }
   /// procedure TW3ControlGraphicContext.ReleaseDC()
   ///  [line: 765, column: 36, file: SmartCL.Graphics]
   ,ReleaseDC:function(Self) {
      /* null */
   }
   /// procedure TW3ControlGraphicContext.SetSize(aNewWidth: Integer; aNewHeight: Integer)
   ///  [line: 760, column: 36, file: SmartCL.Graphics]
   ,SetSize$1:function(Self, aNewWidth$1, aNewHeight$1) {
      /* null */
   }
   ,Destroy:TObject.Destroy
   ,GetDC$:function($){return $.ClassType.GetDC($)}
   ,GetHandle$:function($){return $.ClassType.GetHandle($)}
   ,GetHeight$1$:function($){return $.ClassType.GetHeight$1($)}
   ,GetOwnsReference$:function($){return $.ClassType.GetOwnsReference($)}
   ,GetWidth$1$:function($){return $.ClassType.GetWidth$1($)}
   ,ReleaseDC$:function($){return $.ClassType.ReleaseDC($)}
   ,SetSize$1$:function($){return $.ClassType.SetSize$1.apply($.ClassType, arguments)}
};
/// TW3CanvasPattern = class (TObject)
///  [line: 133, column: 3, file: SmartCL.Graphics]
var TW3CanvasPattern = {
   $ClassName:"TW3CanvasPattern",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
   }
   ,Destroy:TObject.Destroy
};
/// TW3CanvasGradient = class (TObject)
///  [line: 119, column: 3, file: SmartCL.Graphics]
var TW3CanvasGradient = {
   $ClassName:"TW3CanvasGradient",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FHandle$3 = undefined;
   }
   /// constructor TW3CanvasGradient.Create(const aHandle: THandle)
   ///  [line: 603, column: 31, file: SmartCL.Graphics]
   ,Create$30:function(Self, aHandle) {
      TObject.Create(Self);
      $Check(Self," in TW3CanvasGradient.Create [line: 606, column: 3, file: SmartCL.Graphics]").FHandle$3 = aHandle;
      return Self
   }
   ,Destroy:TObject.Destroy
};
/// TW3Canvas = class (TObject)
///  [line: 181, column: 3, file: SmartCL.Graphics]
var TW3Canvas = {
   $ClassName:"TW3Canvas",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FContext = $.FDC = null;
   }
   /// constructor TW3Canvas.Create(Context: TW3CustomGraphicContext)
   ///  [line: 896, column: 23, file: SmartCL.Graphics]
   ,Create$31:function(Self, Context$2) {
      TObject.Create(Self);
      $Check(Self," in TW3Canvas.Create [line: 899, column: 3, file: SmartCL.Graphics]").FContext = Context$2;
      if ($Check(Self," in TW3Canvas.Create [line: 900, column: 19, file: SmartCL.Graphics]").FContext) {
         $Check(Self," in TW3Canvas.Create [line: 903, column: 5, file: SmartCL.Graphics]").FDC = TW3CustomGraphicContext.GetDC$($Check($Check(Self," in TW3Canvas.Create [line: 903, column: 38, file: SmartCL.Graphics]").FContext," in TW3Canvas.Create [line: 903, column: 47, file: SmartCL.Graphics]"));
      } else {
         throw Exception.Create($New(Exception),"Invalid canvas context error");
      }
      return Self
   }
   /// procedure TW3Canvas.DrawImageF(imageHandle: THandle; x: Float; y: Float)
   ///  [line: 1193, column: 21, file: SmartCL.Graphics]
   ,DrawImageF:function(Self, imageHandle, x$14, y$5) {
      $Check(Self," in TW3Canvas.DrawImageF [line: 1195, column: 3, file: SmartCL.Graphics]").FDC.drawImage(imageHandle,x$14,y$5);
   }
   /// procedure TW3Canvas.FillRectF(aLeft: Float; aTop: Float; aWidth: Float; aHeight: Float)
   ///  [line: 1070, column: 21, file: SmartCL.Graphics]
   ,FillRectF$2:function(Self, aLeft$4, aTop$4, aWidth$3, aHeight$3) {
      $Check(Self," in TW3Canvas.FillRectF [line: 1072, column: 3, file: SmartCL.Graphics]").FDC.fillRect(aLeft$4,aTop$4,aWidth$3,aHeight$3);
   }
   /// function TW3Canvas.GetFillStyle() : String
   ///  [line: 1572, column: 20, file: SmartCL.Graphics]
   ,GetFillStyle:function(Self) {
      return ""+$Check($Check(Self," in TW3Canvas.GetFillStyle [line: 1574, column: 13, file: SmartCL.Graphics]").FDC," in TW3Canvas.GetFillStyle [line: 1574, column: 17, file: SmartCL.Graphics]").fillStyle;
   }
   /// function TW3Canvas.GetGlobalAlpha() : Float
   ///  [line: 1438, column: 20, file: SmartCL.Graphics]
   ,GetGlobalAlpha:function(Self) {
      return $Check($Check(Self," in TW3Canvas.GetGlobalAlpha [line: 1440, column: 13, file: SmartCL.Graphics]").FDC," in TW3Canvas.GetGlobalAlpha [line: 1440, column: 17, file: SmartCL.Graphics]").globalAlpha;
   }
   /// procedure TW3Canvas.SetFillStyle(aValue: String)
   ///  [line: 1577, column: 21, file: SmartCL.Graphics]
   ,SetFillStyle:function(Self, aValue$56) {
      $Check($Check(Self," in TW3Canvas.SetFillStyle [line: 1579, column: 3, file: SmartCL.Graphics]").FDC," in TW3Canvas.SetFillStyle [line: 1579, column: 7, file: SmartCL.Graphics]").fillStyle = aValue$56;
   }
   /// procedure TW3Canvas.SetGlobalAlpha(aValue: Float)
   ///  [line: 1443, column: 21, file: SmartCL.Graphics]
   ,SetGlobalAlpha:function(Self, aValue$57) {
      $Check($Check(Self," in TW3Canvas.SetGlobalAlpha [line: 1445, column: 3, file: SmartCL.Graphics]").FDC," in TW3Canvas.SetGlobalAlpha [line: 1445, column: 7, file: SmartCL.Graphics]").globalAlpha = aValue$57;
   }
   /// function TW3Canvas.ToDataURL(aMimeType: String) : String
   ///  [line: 1322, column: 20, file: SmartCL.Graphics]
   ,ToDataURL:function(Self, aMimeType) {
      return $Check($Check(Self," in TW3Canvas.ToDataURL [line: 1324, column: 13, file: SmartCL.Graphics]").FDC," in TW3Canvas.ToDataURL [line: 1324, column: 17, file: SmartCL.Graphics]").canvas.toDataURL(aMimeType);
   }
   /// function TW3Canvas.ToImageData() : TW3ImageData
   ///  [line: 1327, column: 20, file: SmartCL.Graphics]
   ,ToImageData:function(Self) {
      var Result = null;
      var mTemp$2 = null;
      var wd$1 = 0;
      var hd$1 = 0;
      wd$1 = $Check($Check($Check(Self," in TW3Canvas.ToImageData [line: 1332, column: 9, file: SmartCL.Graphics]").FDC," in TW3Canvas.ToImageData [line: 1332, column: 13, file: SmartCL.Graphics]").canvas," in TW3Canvas.ToImageData [line: 1332, column: 20, file: SmartCL.Graphics]").width;
      hd$1 = $Check($Check($Check(Self," in TW3Canvas.ToImageData [line: 1333, column: 9, file: SmartCL.Graphics]").FDC," in TW3Canvas.ToImageData [line: 1333, column: 13, file: SmartCL.Graphics]").canvas," in TW3Canvas.ToImageData [line: 1333, column: 20, file: SmartCL.Graphics]").height;
      try {
         mTemp$2 = $Check(Self," in TW3Canvas.ToImageData [line: 1336, column: 14, file: SmartCL.Graphics]").FDC.getImageData(0,0,wd$1,hd$1);
      } catch ($e) {
         var e$7 = $W($e);
         throw Exception.Create($New(Exception),"Failed to extract data, browser threw exception: "+$Check(e$7," in TW3Canvas.ToImageData [line: 1339, column: 87, file: SmartCL.Graphics]").FMessage);
      }
      if (mTemp$2) {
         Result = TObject.Create($New(TW3ImageData));
         TW3ImageData.FromImageData(Result,mTemp$2);
      }
      return Result
   }
   ,Destroy:TObject.Destroy
};
/// JMouseButton enumeration
///  [line: 142, column: 3, file: W3C.DOM]
var JMouseButton = [ "Left", "Middle", "Right" ];
/// TW3CSSClassStyleNames = class (TW3OwnedObject)
///  [line: 24, column: 3, file: SmartCL.CssNames]
var TW3CSSClassStyleNames = {
   $ClassName:"TW3CSSClassStyleNames",
   $Parent:TW3OwnedObject
   ,$Init:function ($) {
      TW3OwnedObject.$Init($);
      $.FCache = [];
      $.FToken = "";
   }
   /// function TW3CSSClassStyleNames.AcceptParent(aObject: TObject) : Boolean
   ///  [line: 73, column: 32, file: SmartCL.CssNames]
   ,AcceptParent:function(Self, aObject$4) {
      return (aObject$4!==null)&&$Is(aObject$4,TW3CustomControl);
   }
   /// function TW3CSSClassStyleNames.Add(aCSSClassName: String) : Integer
   ///  [line: 255, column: 32, file: SmartCL.CssNames]
   ,Add$2:function(Self, aCSSClassName) {
      var Result = 0;
      var mRef$19 = undefined;
      if ($Check(Self," in TW3CSSClassStyleNames.Add [line: 259, column: 15, file: SmartCL.CssNames]").FOwner) {
         mRef$19 = $Check($As($Check(Self," in TW3CSSClassStyleNames.Add [line: 261, column: 23, file: SmartCL.CssNames]").FOwner,TW3TagObj)," in TW3CSSClassStyleNames.Add [line: 261, column: 30, file: SmartCL.CssNames]").FHandle;
         if (mRef$19) {
            w3_AddClass(mRef$19,aCSSClassName);
            $Check(Self," in TW3CSSClassStyleNames.Add [line: 266, column: 7, file: SmartCL.CssNames]").FCache.push(aCSSClassName);
            Result = $Check(Self," in TW3CSSClassStyleNames.Add [line: 267, column: 17, file: SmartCL.CssNames]").FCache.length-1;
         } else {
            throw EW3Exception.CreateFmt($New(EW3TagObj),$R[0],["TW3CSSClassStyleNames.Add", TObject.ClassName($Check(Self," in TW3CSSClassStyleNames.Add [line: 271, column: 27, file: SmartCL.CssNames]").ClassType), "invalid owner handle error"]);
         }
      } else {
         throw EW3Exception.CreateFmt($New(EW3CSSClassStyleNames),$R[0],["TW3CSSClassStyleNames.Add", TObject.ClassName($Check(Self," in TW3CSSClassStyleNames.Add [line: 275, column: 25, file: SmartCL.CssNames]").ClassType), $R[9]]);
      }
      return Result
   }
   /// constructor TW3CSSClassStyleNames.Create(AOwner: TObject)
   ///  [line: 60, column: 35, file: SmartCL.CssNames]
   ,Create$4:function(Self, AOwner$6) {
      TW3OwnedObject.Create$4(Self,AOwner$6);
      $Check(Self," in TW3CSSClassStyleNames.Create [line: 63, column: 3, file: SmartCL.CssNames]").FToken = "class";
      $Check(Self," in TW3CSSClassStyleNames.Create [line: 64, column: 3, file: SmartCL.CssNames]").FCache = [];
      return Self
   }
   /// destructor TW3CSSClassStyleNames.Destroy()
   ///  [line: 67, column: 34, file: SmartCL.CssNames]
   ,Destroy:function(Self) {
      $Check(Self," in TW3CSSClassStyleNames.Destroy [line: 69, column: 3, file: SmartCL.CssNames]").FCache.length=0;
      TObject.Destroy(Self);
   }
   /// function TW3CSSClassStyleNames.IndexOf(aCSSClassName: String) : Integer
   ///  [line: 202, column: 32, file: SmartCL.CssNames]
   ,IndexOf$2:function(Self, aCSSClassName$1) {
      var Result = 0;
      var x$15 = 0;
      Result = -1;
      if ($Check(Self," in TW3CSSClassStyleNames.IndexOf [line: 207, column: 15, file: SmartCL.CssNames]").FOwner) {
         aCSSClassName$1 = (Trim$_String_(aCSSClassName$1)).toLowerCase();
         if (aCSSClassName$1.length>0) {
            var $temp23;
            for(x$15 = 0,$temp23 = $Check(Self," in TW3CSSClassStyleNames.IndexOf [line: 212, column: 21, file: SmartCL.CssNames]").FCache.length;x$15<$temp23;x$15++) {
               if (($DIdxR($Check(Self," in TW3CSSClassStyleNames.IndexOf [line: 214, column: 22, file: SmartCL.CssNames]").FCache,x$15," in TW3CSSClassStyleNames.IndexOf [line: 214, column: 31, file: SmartCL.CssNames]")).toLowerCase()==aCSSClassName$1) {
                  Result = x$15;
                  break;
               }
            }
         }
      } else {
         throw EW3Exception.CreateFmt($New(EW3CSSClassStyleNames),$R[0],["TW3CSSClassStyleNames.IndexOf", TObject.ClassName($Check(Self," in TW3CSSClassStyleNames.IndexOf [line: 222, column: 74, file: SmartCL.CssNames]").ClassType), $R[9]]);
      }
      return Result
   }
   /// function TW3CSSClassStyleNames.RemoveByName(aCSSClassName: String) : String
   ///  [line: 299, column: 32, file: SmartCL.CssNames]
   ,RemoveByName:function(Self, aCSSClassName$2) {
      var Result = "";
      var mRef$20 = undefined;
      var mIndex$3 = 0;
      if ($Check(Self," in TW3CSSClassStyleNames.RemoveByName [line: 304, column: 15, file: SmartCL.CssNames]").FOwner) {
         mRef$20 = $Check($As($Check(Self," in TW3CSSClassStyleNames.RemoveByName [line: 306, column: 23, file: SmartCL.CssNames]").FOwner,TW3TagObj)," in TW3CSSClassStyleNames.RemoveByName [line: 306, column: 30, file: SmartCL.CssNames]").FHandle;
         if (mRef$20) {
            w3_RemoveClass(mRef$20,aCSSClassName$2);
            mIndex$3 = TW3CSSClassStyleNames.IndexOf$2(Self,aCSSClassName$2);
            if (mIndex$3>=0) {
               $Check(Self," in TW3CSSClassStyleNames.RemoveByName [line: 313, column: 9, file: SmartCL.CssNames]").FCache.splice(mIndex$3,1)
               ;
            }
            Result = aCSSClassName$2;
         } else {
            throw EW3Exception.CreateFmt($New(EW3TagObj),$R[0],["TW3CSSClassStyleNames.RemoveByName", TObject.ClassName($Check(Self," in TW3CSSClassStyleNames.RemoveByName [line: 317, column: 67, file: SmartCL.CssNames]").ClassType), "invalid owner handle error"]);
         }
      } else {
         throw EW3Exception.CreateFmt($New(EW3CSSClassStyleNames),$R[0],["TW3CSSClassStyleNames.RemoveByName", TObject.ClassName($Check(Self," in TW3CSSClassStyleNames.RemoveByName [line: 320, column: 76, file: SmartCL.CssNames]").ClassType), $R[9]]);
      }
      return Result
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
   ,AcceptParent$:function($){return $.ClassType.AcceptParent.apply($.ClassType, arguments)}
   ,Create$4$:function($){return $.ClassType.Create$4.apply($.ClassType, arguments)}
};
/// EW3CSSClassStyleNames = class (EW3Exception)
///  [line: 22, column: 3, file: SmartCL.CssNames]
var EW3CSSClassStyleNames = {
   $ClassName:"EW3CSSClassStyleNames",
   $Parent:EW3Exception
   ,$Init:function ($) {
      EW3Exception.$Init($);
   }
   ,Destroy:Exception.Destroy
};
/// TW3TouchList = class (TObject)
///  [line: 58, column: 3, file: SmartCL.Touch]
var TW3TouchList = {
   $ClassName:"TW3TouchList",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FObjects = [];
   }
   /// anonymous TSourceMethodSymbol
   ///  [line: 62, column: 53, file: SmartCL.Touch]
   ,a$25:function(Self, index$3) {
      return $DIdxR($Check(Self," in TW3TouchList. [line: 62, column: 54, file: SmartCL.Touch]").FObjects,index$3," in TW3TouchList. [line: 62, column: 69, file: SmartCL.Touch]");
   }
   /// procedure TW3TouchList.Clear()
   ///  [line: 131, column: 24, file: SmartCL.Touch]
   ,Clear$3:function(Self) {
      $Check(Self," in TW3TouchList.Clear [line: 133, column: 3, file: SmartCL.Touch]").FObjects.length=0;
   }
   /// procedure TW3TouchList.Update(refObj: JTouchList)
   ///  [line: 141, column: 24, file: SmartCL.Touch]
   ,Update:function(Self, refObj) {
      var mCount$2 = 0;
      var x$16 = 0;
      var mObj$8 = null;
      mCount$2 = $Check(refObj," in TW3TouchList.Update [line: 147, column: 20, file: SmartCL.Touch]").length;
      if (mCount$2==$Check(Self," in TW3TouchList.Update [line: 150, column: 15, file: SmartCL.Touch]").FObjects.length) {
         var $temp24;
         for(x$16 = 0,$temp24 = mCount$2;x$16<$temp24;x$16++) {
            TW3Touch.Consume$1($DIdxR($Check(Self," in TW3TouchList.Update [line: 153, column: 7, file: SmartCL.Touch]").FObjects,x$16," in TW3TouchList.Update [line: 153, column: 18, file: SmartCL.Touch]"),refObj[x$16]);
         }
      } else {
         TW3TouchList.Clear$3(Self);
         var $temp25;
         for(x$16 = 0,$temp25 = mCount$2;x$16<$temp25;x$16++) {
            mObj$8 = TObject.Create($New(TW3Touch));
            TW3Touch.Consume$1(mObj$8,refObj[x$16]);
            $Check(Self," in TW3TouchList.Update [line: 163, column: 7, file: SmartCL.Touch]").FObjects.push(mObj$8);
         }
      }
   }
   ,Destroy:TObject.Destroy
};
/// TW3TouchData = class (TObject)
///  [line: 70, column: 3, file: SmartCL.Touch]
var TW3TouchData = {
   $ClassName:"TW3TouchData",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FChanged = $.FTouches = null;
   }
   /// function TW3TouchData.GetChanged() : TW3TouchList
   ///  [line: 191, column: 23, file: SmartCL.Touch]
   ,GetChanged:function(Self) {
      var Result = null;
      if (!$Check(Self," in TW3TouchData.GetChanged [line: 193, column: 19, file: SmartCL.Touch]").FChanged) {
         $Check(Self," in TW3TouchData.GetChanged [line: 195, column: 5, file: SmartCL.Touch]").FChanged = TObject.Create($New(TW3TouchList));
         TW3TouchList.Update($Check(Self," in TW3TouchData.GetChanged [line: 196, column: 5, file: SmartCL.Touch]").FChanged,$Check(event," in TW3TouchData.GetChanged [line: 196, column: 51, file: SmartCL.Touch]").changedTouches);
      }
      Result = $Check(Self," in TW3TouchData.GetChanged [line: 199, column: 13, file: SmartCL.Touch]").FChanged;
      return Result
   }
   /// procedure TW3TouchData.Update(eventObj: JTouchEvent)
   ///  [line: 172, column: 24, file: SmartCL.Touch]
   ,Update$1:function(Self, eventObj$17) {
      if ($Check(Self," in TW3TouchData.Update [line: 174, column: 15, file: SmartCL.Touch]").FTouches) {
         TW3TouchList.Update($Check(Self," in TW3TouchData.Update [line: 175, column: 5, file: SmartCL.Touch]").FTouches,$Check(eventObj$17," in TW3TouchData.Update [line: 175, column: 30, file: SmartCL.Touch]").touches);
      }
      if ($Check(Self," in TW3TouchData.Update [line: 176, column: 15, file: SmartCL.Touch]").FChanged) {
         TW3TouchList.Update($Check(Self," in TW3TouchData.Update [line: 177, column: 5, file: SmartCL.Touch]").FChanged,$Check(eventObj$17," in TW3TouchData.Update [line: 177, column: 30, file: SmartCL.Touch]").changedTouches);
      }
   }
   ,Destroy:TObject.Destroy
};
/// TW3Touch = class (TObject)
///  [line: 34, column: 3, file: SmartCL.Touch]
var TW3Touch = {
   $ClassName:"TW3Touch",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FClientX = $.FClientY = $.FPageX = $.FPageY = $.FScreenX = $.FScreenY = 0;
      $.FIdent = undefined;
      $.FTarget = null;
   }
   /// procedure TW3Touch.Consume(touch: JTouch)
   ///  [line: 104, column: 20, file: SmartCL.Touch]
   ,Consume$1:function(Self, touch) {
      $Check(Self," in TW3Touch.Consume [line: 106, column: 3, file: SmartCL.Touch]").FScreenX = $Check(touch," in TW3Touch.Consume [line: 106, column: 21, file: SmartCL.Touch]").screenX;
      $Check(Self," in TW3Touch.Consume [line: 107, column: 3, file: SmartCL.Touch]").FScreenY = $Check(touch," in TW3Touch.Consume [line: 107, column: 21, file: SmartCL.Touch]").screenY;
      $Check(Self," in TW3Touch.Consume [line: 108, column: 3, file: SmartCL.Touch]").FClientX = $Check(touch," in TW3Touch.Consume [line: 108, column: 21, file: SmartCL.Touch]").clientX;
      $Check(Self," in TW3Touch.Consume [line: 109, column: 3, file: SmartCL.Touch]").FClientY = $Check(touch," in TW3Touch.Consume [line: 109, column: 21, file: SmartCL.Touch]").clientY;
      $Check(Self," in TW3Touch.Consume [line: 110, column: 3, file: SmartCL.Touch]").FPageX = $Check(touch," in TW3Touch.Consume [line: 110, column: 21, file: SmartCL.Touch]").pageX;
      $Check(Self," in TW3Touch.Consume [line: 111, column: 3, file: SmartCL.Touch]").FPageY = $Check(touch," in TW3Touch.Consume [line: 111, column: 21, file: SmartCL.Touch]").pageY;
      $Check(Self," in TW3Touch.Consume [line: 112, column: 3, file: SmartCL.Touch]").FIdent = $Check(touch," in TW3Touch.Consume [line: 112, column: 21, file: SmartCL.Touch]").identifier;
      $Check(Self," in TW3Touch.Consume [line: 113, column: 3, file: SmartCL.Touch]").FTarget = TVariant.AsObject($Check(touch," in TW3Touch.Consume [line: 113, column: 39, file: SmartCL.Touch]").target);
   }
   ,Destroy:TObject.Destroy
};
/// TW3GestureData = class (TObject)
///  [line: 83, column: 3, file: SmartCL.Touch]
var TW3GestureData = {
   $ClassName:"TW3GestureData",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FRotation = $.FScale = 0;
   }
   /// procedure TW3GestureData.Consume(refObj: THandle)
   ///  [line: 206, column: 26, file: SmartCL.Touch]
   ,Consume$2:function(Self, refObj$1) {
      $Check(Self," in TW3GestureData.Consume [line: 209, column: 3, file: SmartCL.Touch]").FRotation = Number(refObj$1.rotation);
      $Check(Self," in TW3GestureData.Consume [line: 210, column: 3, file: SmartCL.Touch]").FScale = Number(refObj$1.scale);
   }
   /// procedure TW3GestureData.Update()
   ///  [line: 213, column: 26, file: SmartCL.Touch]
   ,Update$2:function(Self) {
      TW3GestureData.Consume$2(Self,event);
   }
   ,Destroy:TObject.Destroy
};
/// TW3Borders = class (TW3OwnedObject)
///  [line: 56, column: 3, file: SmartCL.Borders]
var TW3Borders = {
   $ClassName:"TW3Borders",
   $Parent:TW3OwnedObject
   ,$Init:function ($) {
      TW3OwnedObject.$Init($);
      $.FBottom = $.FLeft = $.FRight = $.FTop = null;
   }
   /// function TW3Borders.AcceptParent(AObject: TObject) : Boolean
   ///  [line: 338, column: 21, file: SmartCL.Borders]
   ,AcceptParent:function(Self, AObject) {
      return $Is(AObject,TW3TagObj);
   }
   /// constructor TW3Borders.Create(AOwner: TObject)
   ///  [line: 291, column: 24, file: SmartCL.Borders]
   ,Create$4:function(Self, AOwner$7) {
      TW3OwnedObject.Create$4(Self,AOwner$7);
      $Check(Self," in TW3Borders.Create [line: 294, column: 3, file: SmartCL.Borders]").FLeft = TW3Border.Create$41($New(TW3Border),Self,0);
      $Check(Self," in TW3Borders.Create [line: 295, column: 3, file: SmartCL.Borders]").FTop = TW3Border.Create$41($New(TW3Border),Self,1);
      $Check(Self," in TW3Borders.Create [line: 296, column: 3, file: SmartCL.Borders]").FRight = TW3Border.Create$41($New(TW3Border),Self,2);
      $Check(Self," in TW3Borders.Create [line: 297, column: 3, file: SmartCL.Borders]").FBottom = TW3Border.Create$41($New(TW3Border),Self,3);
      return Self
   }
   /// destructor TW3Borders.Destroy()
   ///  [line: 300, column: 23, file: SmartCL.Borders]
   ,Destroy:function(Self) {
      TObject.Free($Check(Self," in TW3Borders.Destroy [line: 302, column: 3, file: SmartCL.Borders]").FLeft);
      TObject.Free($Check(Self," in TW3Borders.Destroy [line: 303, column: 3, file: SmartCL.Borders]").FTop);
      TObject.Free($Check(Self," in TW3Borders.Destroy [line: 304, column: 3, file: SmartCL.Borders]").FRight);
      TObject.Free($Check(Self," in TW3Borders.Destroy [line: 305, column: 3, file: SmartCL.Borders]").FBottom);
      TObject.Destroy(Self);
   }
   /// function TW3Borders.GetHSpace() : Integer
   ///  [line: 333, column: 21, file: SmartCL.Borders]
   ,GetHSpace:function(Self) {
      return TW3Border.GetWidth$6($Check(Self," in TW3Borders.GetHSpace [line: 335, column: 14, file: SmartCL.Borders]").FLeft)+TW3Border.GetPadding($Check(Self," in TW3Borders.GetHSpace [line: 335, column: 28, file: SmartCL.Borders]").FLeft)+TW3Border.GetWidth$6($Check(Self," in TW3Borders.GetHSpace [line: 335, column: 44, file: SmartCL.Borders]").FRight)+TW3Border.GetPadding($Check(Self," in TW3Borders.GetHSpace [line: 335, column: 59, file: SmartCL.Borders]").FRight);
   }
   /// function TW3Borders.GetVSpace() : Integer
   ///  [line: 328, column: 21, file: SmartCL.Borders]
   ,GetVSpace:function(Self) {
      return TW3Border.GetWidth$6($Check(Self," in TW3Borders.GetVSpace [line: 330, column: 13, file: SmartCL.Borders]").FTop)+TW3Border.GetPadding($Check(Self," in TW3Borders.GetVSpace [line: 330, column: 26, file: SmartCL.Borders]").FTop)+TW3Border.GetWidth$6($Check(Self," in TW3Borders.GetVSpace [line: 330, column: 41, file: SmartCL.Borders]").FBottom)+TW3Border.GetPadding($Check(Self," in TW3Borders.GetVSpace [line: 330, column: 57, file: SmartCL.Borders]").FBottom);
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
   ,AcceptParent$:function($){return $.ClassType.AcceptParent.apply($.ClassType, arguments)}
   ,Create$4$:function($){return $.ClassType.Create$4.apply($.ClassType, arguments)}
};
/// TW3BorderEdgeStyle enumeration
///  [line: 23, column: 3, file: SmartCL.Borders]
var TW3BorderEdgeStyle = [ "besNone", "besSolid", "besDotted", "besDouble", "besGroove", "besInset", "besOutset" ];
/// TW3BorderEdge enumeration
///  [line: 22, column: 3, file: SmartCL.Borders]
var TW3BorderEdge = [ "beLeft", "beTop", "beRight", "beBottom" ];
/// TW3Border = class (TObject)
///  [line: 28, column: 3, file: SmartCL.Borders]
var TW3Border = {
   $ClassName:"TW3Border",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FEdge = 0;
      $.FEdgeName = "";
      $.FOwner$4 = null;
   }
   /// constructor TW3Border.Create(AOwner: TW3Borders; AEdge: TW3BorderEdge)
   ///  [line: 94, column: 23, file: SmartCL.Borders]
   ,Create$41:function(Self, AOwner$8, AEdge) {
      TObject.Create(Self);
      $Check(Self," in TW3Border.Create [line: 97, column: 3, file: SmartCL.Borders]").FOwner$4 = AOwner$8;
      $Check(Self," in TW3Border.Create [line: 98, column: 3, file: SmartCL.Borders]").FEdge = $Check(Self," in TW3Border.Create [line: 98, column: 12, file: SmartCL.Borders]").FEdge;
      switch (AEdge) {
         case 0 :
            $Check(Self," in TW3Border.Create [line: 100, column: 15, file: SmartCL.Borders]").FEdgeName = "left";
            break;
         case 1 :
            $Check(Self," in TW3Border.Create [line: 101, column: 15, file: SmartCL.Borders]").FEdgeName = "top";
            break;
         case 2 :
            $Check(Self," in TW3Border.Create [line: 102, column: 15, file: SmartCL.Borders]").FEdgeName = "right";
            break;
         case 3 :
            $Check(Self," in TW3Border.Create [line: 103, column: 15, file: SmartCL.Borders]").FEdgeName = "bottom";
            break;
      }
      return Self
   }
   /// function TW3Border.GetPadding() : Integer
   ///  [line: 131, column: 20, file: SmartCL.Borders]
   ,GetPadding:function(Self) {
      var Result = 0;
      var mRef$21 = undefined;
      var mKey = "";
      Result = 0;
      mRef$21 = $Check($As($Check($Check(Self," in TW3Border.GetPadding [line: 137, column: 21, file: SmartCL.Borders]").FOwner$4," in TW3Border.GetPadding [line: 137, column: 28, file: SmartCL.Borders]").FOwner,TW3TagObj)," in TW3Border.GetPadding [line: 137, column: 35, file: SmartCL.Borders]").FHandle;
      if (mRef$21) {
         mKey = "padding-"+$Check(Self," in TW3Border.GetPadding [line: 140, column: 26, file: SmartCL.Borders]").FEdgeName;
         Result = w3_getCssStyleAsInteger(mRef$21,mKey);
      }
      return Result
   }
   /// function TW3Border.GetWidth() : Integer
   ///  [line: 189, column: 20, file: SmartCL.Borders]
   ,GetWidth$6:function(Self) {
      var Result = 0;
      var mRef$22 = undefined;
      var mKey$1 = "";
      Result = 0;
      mRef$22 = $Check($As($Check($Check(Self," in TW3Border.GetWidth [line: 195, column: 21, file: SmartCL.Borders]").FOwner$4," in TW3Border.GetWidth [line: 195, column: 28, file: SmartCL.Borders]").FOwner,TW3TagObj)," in TW3Border.GetWidth [line: 195, column: 35, file: SmartCL.Borders]").FHandle;
      if (mRef$22) {
         mKey$1 = "border-"+$Check(Self," in TW3Border.GetWidth [line: 198, column: 25, file: SmartCL.Borders]").FEdgeName+"-width";
         Result = w3_getCssStyleAsInteger(mRef$22,mKey$1);
      }
      return Result
   }
   /// procedure TW3Border.SetPadding(aValue: Integer)
   ///  [line: 145, column: 21, file: SmartCL.Borders]
   ,SetPadding:function(Self, aValue$58) {
      var mRef$23 = undefined;
      var mKey$2 = "";
      mRef$23 = $Check($As($Check($Check(Self," in TW3Border.SetPadding [line: 150, column: 21, file: SmartCL.Borders]").FOwner$4," in TW3Border.SetPadding [line: 150, column: 28, file: SmartCL.Borders]").FOwner,TW3TagObj)," in TW3Border.SetPadding [line: 150, column: 35, file: SmartCL.Borders]").FHandle;
      if (mRef$23) {
         mKey$2 = "padding-"+$Check(Self," in TW3Border.SetPadding [line: 153, column: 26, file: SmartCL.Borders]").FEdgeName;
         w3_setCssStyle(mRef$23,mKey$2,TInteger.ToPxStr(aValue$58));
      } else {
         throw EW3Exception.CreateFmt($New(EW3TagObj),$R[0],["TW3Border.SetPadding", TObject.ClassName($Check(Self," in TW3Border.SetPadding [line: 156, column: 65, file: SmartCL.Borders]").ClassType), $R[12]]);
      }
   }
   /// procedure TW3Border.SetWidth(aValue: Integer)
   ///  [line: 203, column: 21, file: SmartCL.Borders]
   ,SetWidth$2:function(Self, aValue$59) {
      var mRef$24 = undefined;
      var mKey$3 = "";
      mRef$24 = $Check($As($Check($Check(Self," in TW3Border.SetWidth [line: 208, column: 21, file: SmartCL.Borders]").FOwner$4," in TW3Border.SetWidth [line: 208, column: 28, file: SmartCL.Borders]").FOwner,TW3TagObj)," in TW3Border.SetWidth [line: 208, column: 35, file: SmartCL.Borders]").FHandle;
      if (mRef$24) {
         mKey$3 = "border-"+$Check(Self," in TW3Border.SetWidth [line: 211, column: 25, file: SmartCL.Borders]").FEdgeName+"-width";
         w3_setCssStyle(mRef$24,mKey$3,TInteger.ToPxStr(aValue$59));
      } else {
         throw EW3Exception.CreateFmt($New(EW3TagObj),$R[0],["TW3Border.SetWidth", TObject.ClassName($Check(Self," in TW3Border.SetWidth [line: 214, column: 65, file: SmartCL.Borders]").ClassType), $R[12]]);
      }
   }
   ,Destroy:TObject.Destroy
};
/// TW3CustomAnimation = class (TObject)
///  [line: 25, column: 3, file: SmartCL.Effects]
var TW3CustomAnimation = {
   $ClassName:"TW3CustomAnimation",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FBusy = false;
      $.FDuration = 0;
      $.FInEvnCB = null;
      $.FOnBegins = null;
      $.FOnEnds = null;
      $.FTarget$1 = null;
   }
   /// procedure TW3CustomAnimation.CBBegins()
   ///  [line: 457, column: 30, file: SmartCL.Effects]
   ,CBBegins:function(Self) {
      if ($Check(Self," in TW3CustomAnimation.CBBegins [line: 459, column: 15, file: SmartCL.Effects]").FOnBegins) {
         $CheckFunc($Check(Self," in TW3CustomAnimation.CBBegins [line: 460, column: 5, file: SmartCL.Effects]").FOnBegins," in TW3CustomAnimation.CBBegins [line: 460, column: 14, file: SmartCL.Effects]")(Self);
      }
   }
   /// procedure TW3CustomAnimation.CBEnds()
   ///  [line: 463, column: 30, file: SmartCL.Effects]
   ,CBEnds:function(Self) {
      TW3CustomAnimation.FinalizeTransition$($Check(Self," in TW3CustomAnimation.CBEnds [line: 465, column: 3, file: SmartCL.Effects]"));
      if ($Check(Self," in TW3CustomAnimation.CBEnds [line: 466, column: 15, file: SmartCL.Effects]").FOnEnds) {
         $CheckFunc($Check(Self," in TW3CustomAnimation.CBEnds [line: 467, column: 5, file: SmartCL.Effects]").FOnEnds," in TW3CustomAnimation.CBEnds [line: 467, column: 12, file: SmartCL.Effects]")(Self);
      }
   }
   /// constructor TW3CustomAnimation.Create()
   ///  [line: 436, column: 32, file: SmartCL.Effects]
   ,Create$42:function(Self) {
      TObject.Create(Self);
      $Check(Self," in TW3CustomAnimation.Create [line: 439, column: 3, file: SmartCL.Effects]").FDuration = DefaultDuration;
      return Self
   }
   /// destructor TW3CustomAnimation.Destroy()
   ///  [line: 442, column: 31, file: SmartCL.Effects]
   ,Destroy:function(Self) {
      if ($Check(Self," in TW3CustomAnimation.Destroy [line: 445, column: 6, file: SmartCL.Effects]").FBusy&&($Check(Self," in TW3CustomAnimation.Destroy [line: 445, column: 25, file: SmartCL.Effects]").FTarget$1!==null)) {
         try {
            TW3CustomAnimation.FinalizeTransition$($Check(Self," in TW3CustomAnimation.Destroy [line: 448, column: 7, file: SmartCL.Effects]"));
         } catch ($e) {
            var e$8 = $W($e);
            /* null */
         }
      }
      TObject.Destroy(Self);
   }
   /// procedure TW3CustomAnimation.ExecuteEx(TargetObj: TW3TagObj; BeginHandler: TFxAnimationBeginsEvent; EndHandler: TFxAnimationEndsEvent)
   ///  [line: 513, column: 30, file: SmartCL.Effects]
   ,ExecuteEx:function(Self, TargetObj, BeginHandler, EndHandler) {
      if (!TargetObj) {
         throw Exception.Create($New(Exception),"Target-object was NIL error");
      }
      if ($Check(Self," in TW3CustomAnimation.ExecuteEx [line: 519, column: 10, file: SmartCL.Effects]").FBusy) {
         throw Exception.Create($New(Exception),"Transition is already in progress error");
      } else {
         $Check(Self," in TW3CustomAnimation.ExecuteEx [line: 521, column: 5, file: SmartCL.Effects]").FTarget$1 = TargetObj;
         $Check(Self," in TW3CustomAnimation.ExecuteEx [line: 522, column: 5, file: SmartCL.Effects]").FOnBegins = BeginHandler;
         $Check(Self," in TW3CustomAnimation.ExecuteEx [line: 523, column: 5, file: SmartCL.Effects]").FOnEnds = EndHandler;
         TW3CustomAnimation.SetupTransition$($Check(Self," in TW3CustomAnimation.ExecuteEx [line: 524, column: 5, file: SmartCL.Effects]"));
      }
   }
   /// procedure TW3CustomAnimation.FinalizeTransition()
   ///  [line: 492, column: 30, file: SmartCL.Effects]
   ,FinalizeTransition:function(Self) {
      w3_RemoveEvent($Check($Check(Self," in TW3CustomAnimation.FinalizeTransition [line: 494, column: 18, file: SmartCL.Effects]").FTarget$1," in TW3CustomAnimation.FinalizeTransition [line: 494, column: 26, file: SmartCL.Effects]").FHandle,"animationend",$Check(Self," in TW3CustomAnimation.FinalizeTransition [line: 494, column: 50, file: SmartCL.Effects]").FInEvnCB,true);
      w3_RemoveEvent($Check($Check(Self," in TW3CustomAnimation.FinalizeTransition [line: 495, column: 18, file: SmartCL.Effects]").FTarget$1," in TW3CustomAnimation.FinalizeTransition [line: 495, column: 26, file: SmartCL.Effects]").FHandle,"webkitAnimationEnd",$Check(Self," in TW3CustomAnimation.FinalizeTransition [line: 495, column: 56, file: SmartCL.Effects]").FInEvnCB,true);
      $Check(Self," in TW3CustomAnimation.FinalizeTransition [line: 497, column: 3, file: SmartCL.Effects]").FBusy = false;
   }
   /// procedure TW3CustomAnimation.SetDuration(Value: Float)
   ///  [line: 470, column: 30, file: SmartCL.Effects]
   ,SetDuration:function(Self, Value$11) {
      if ($Check(Self," in TW3CustomAnimation.SetDuration [line: 472, column: 10, file: SmartCL.Effects]").FBusy) {
         throw Exception.Create($New(Exception),"Duration cannot be altered while the transition is active error");
      } else {
         $Check(Self," in TW3CustomAnimation.SetDuration [line: 473, column: 5, file: SmartCL.Effects]").FDuration = Value$11;
      }
   }
   /// procedure TW3CustomAnimation.SetupTransition()
   ///  [line: 478, column: 30, file: SmartCL.Effects]
   ,SetupTransition:function(Self) {
      $Check(Self," in TW3CustomAnimation.SetupTransition [line: 480, column: 3, file: SmartCL.Effects]").FBusy = true;
      $Check(Self," in TW3CustomAnimation.SetupTransition [line: 484, column: 3, file: SmartCL.Effects]").FInEvnCB = $Event0(Self,TW3CustomAnimation.CBEnds);
      w3_AddEvent($Check($Check(Self," in TW3CustomAnimation.SetupTransition [line: 486, column: 15, file: SmartCL.Effects]").FTarget$1," in TW3CustomAnimation.SetupTransition [line: 486, column: 23, file: SmartCL.Effects]").FHandle,"animationend",$Check(Self," in TW3CustomAnimation.SetupTransition [line: 486, column: 47, file: SmartCL.Effects]").FInEvnCB,true);
      w3_AddEvent($Check($Check(Self," in TW3CustomAnimation.SetupTransition [line: 487, column: 15, file: SmartCL.Effects]").FTarget$1," in TW3CustomAnimation.SetupTransition [line: 487, column: 23, file: SmartCL.Effects]").FHandle,"webkitAnimationEnd",$Check(Self," in TW3CustomAnimation.SetupTransition [line: 487, column: 53, file: SmartCL.Effects]").FInEvnCB,true);
      TW3CustomAnimation.CBBegins(Self);
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
   ,Create$42$:function($){return $.ClassType.Create$42($)}
   ,FinalizeTransition$:function($){return $.ClassType.FinalizeTransition($)}
   ,SetupTransition$:function($){return $.ClassType.SetupTransition($)}
};
/// TW3NamedAnimation = class (TW3CustomAnimation)
///  [line: 60, column: 3, file: SmartCL.Effects]
var TW3NamedAnimation = {
   $ClassName:"TW3NamedAnimation",
   $Parent:TW3CustomAnimation
   ,$Init:function ($) {
      TW3CustomAnimation.$Init($);
      $.FName$2 = "";
   }
   /// procedure TW3NamedAnimation.SetupTransition()
   ///  [line: 367, column: 29, file: SmartCL.Effects]
   ,SetupTransition:function(Self) {
      var mCommand = "";
      TW3CustomAnimation.SetupTransition(Self);
      w3_setStyle($Check($Check(Self," in TW3NamedAnimation.SetupTransition [line: 372, column: 15, file: SmartCL.Effects]").FTarget$1," in TW3NamedAnimation.SetupTransition [line: 372, column: 22, file: SmartCL.Effects]").FHandle,w3_CSSPrefix("AnimationFillMode"),"both");
      mCommand = $Check(Self," in TW3NamedAnimation.SetupTransition [line: 373, column: 15, file: SmartCL.Effects]").FName$2+" "+FloatToStr$_Float_($Check(Self," in TW3NamedAnimation.SetupTransition [line: 373, column: 40, file: SmartCL.Effects]").FDuration)+"s linear";
      w3_setStyle($Check($Check(Self," in TW3NamedAnimation.SetupTransition [line: 374, column: 15, file: SmartCL.Effects]").FTarget$1," in TW3NamedAnimation.SetupTransition [line: 374, column: 22, file: SmartCL.Effects]").FHandle,w3_CSSPrefix("Animation"),mCommand);
   }
   /// procedure TW3NamedAnimation.FinalizeTransition()
   ///  [line: 377, column: 29, file: SmartCL.Effects]
   ,FinalizeTransition:function(Self) {
      TW3CustomAnimation.FinalizeTransition(Self);
      if ($Check(Self," in TW3NamedAnimation.FinalizeTransition [line: 381, column: 6, file: SmartCL.Effects]").FTarget$1!==null) {
         $Check($Check(Self," in TW3NamedAnimation.FinalizeTransition [line: 383, column: 11, file: SmartCL.Effects]").FTarget$1," in TW3NamedAnimation.FinalizeTransition [line: 383, column: 18, file: SmartCL.Effects]").FHandle.style[w3_CSSPrefix("Animation")] = "none";
         $Check($Check(Self," in TW3NamedAnimation.FinalizeTransition [line: 384, column: 11, file: SmartCL.Effects]").FTarget$1," in TW3NamedAnimation.FinalizeTransition [line: 384, column: 18, file: SmartCL.Effects]").FHandle.style[w3_CSSPrefix("AnimationFillMode")] = "none";
      }
   }
   ,Destroy:TW3CustomAnimation.Destroy
   ,Create$42:TW3CustomAnimation.Create$42
   ,FinalizeTransition$:function($){return $.ClassType.FinalizeTransition($)}
   ,SetupTransition$:function($){return $.ClassType.SetupTransition($)}
};
/// TW3AnimationTiming enumeration
///  [line: 83, column: 3, file: SmartCL.Effects]
var TW3AnimationTiming = [ "atEase", "atLinear", "atEaseIn", "atEaseOut", "atEaseInOut" ];
var cW3AnimationTiming = ["ease","linear","ease-in","ease-out","ease-in-out"];
/// TW3AlertResult enumeration
///  [line: 27, column: 3, file: SmartCL.Dialogs]
var TW3AlertResult = [ "roYes", "roNo", "roOK", "roCancel" ];
/// TW3AlertOptions enumeration
///  [line: 26, column: 3, file: SmartCL.Dialogs]
var TW3AlertOptions = [ "aoYes", "aoNo", "aoYesNo", "aoOK", "aoCancel", "aoOKCancel" ];
/// TW3AlertDialog = class (TW3CustomControl)
///  [line: 38, column: 3, file: SmartCL.Dialogs]
var TW3AlertDialog = {
   $ClassName:"TW3AlertDialog",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FNo = $.FOnSelect = $.FText = $.FTitle = $.FYes = null;
      $.FOptions = 0;
      $.FReady = false;
   }
   /// procedure TW3AlertDialog.FinalizeObject()
   ///  [line: 87, column: 26, file: SmartCL.Dialogs]
   ,FinalizeObject:function(Self) {
      TObject.Free($Check(Self," in TW3AlertDialog.FinalizeObject [line: 89, column: 3, file: SmartCL.Dialogs]").FTitle);
      TObject.Free($Check(Self," in TW3AlertDialog.FinalizeObject [line: 90, column: 3, file: SmartCL.Dialogs]").FText);
      TObject.Free($Check(Self," in TW3AlertDialog.FinalizeObject [line: 91, column: 3, file: SmartCL.Dialogs]").FYes);
      TObject.Free($Check(Self," in TW3AlertDialog.FinalizeObject [line: 92, column: 3, file: SmartCL.Dialogs]").FNo);
      TW3CustomControl.FinalizeObject(Self);
   }
   /// procedure TW3AlertDialog.HandleNoClick(Sender: TObject)
   ///  [line: 112, column: 26, file: SmartCL.Dialogs]
   ,HandleNoClick:function(Self, Sender$2) {
      if ($Check(Self," in TW3AlertDialog.HandleNoClick [line: 114, column: 15, file: SmartCL.Dialogs]").FOnSelect) {
         switch ($Check(Self," in TW3AlertDialog.HandleNoClick [line: 116, column: 10, file: SmartCL.Dialogs]").FOptions) {
            case 0 :
            case 2 :
            case 1 :
               $CheckFunc($Check(Self," in TW3AlertDialog.HandleNoClick [line: 117, column: 33, file: SmartCL.Dialogs]").FOnSelect," in TW3AlertDialog.HandleNoClick [line: 117, column: 42, file: SmartCL.Dialogs]")(Self,1);
               break;
            case 3 :
            case 4 :
            case 5 :
               $CheckFunc($Check(Self," in TW3AlertDialog.HandleNoClick [line: 118, column: 33, file: SmartCL.Dialogs]").FOnSelect," in TW3AlertDialog.HandleNoClick [line: 118, column: 42, file: SmartCL.Dialogs]")(Self,3);
               break;
         }
      }
   }
   /// procedure TW3AlertDialog.HandleYesClick(Sender: TObject)
   ///  [line: 101, column: 26, file: SmartCL.Dialogs]
   ,HandleYesClick:function(Self, Sender$3) {
      if ($Check(Self," in TW3AlertDialog.HandleYesClick [line: 103, column: 15, file: SmartCL.Dialogs]").FOnSelect) {
         switch ($Check(Self," in TW3AlertDialog.HandleYesClick [line: 105, column: 10, file: SmartCL.Dialogs]").FOptions) {
            case 0 :
            case 2 :
            case 1 :
               $CheckFunc($Check(Self," in TW3AlertDialog.HandleYesClick [line: 106, column: 33, file: SmartCL.Dialogs]").FOnSelect," in TW3AlertDialog.HandleYesClick [line: 106, column: 42, file: SmartCL.Dialogs]")(Self,0);
               break;
            case 3 :
            case 4 :
            case 5 :
               $CheckFunc($Check(Self," in TW3AlertDialog.HandleYesClick [line: 107, column: 33, file: SmartCL.Dialogs]").FOnSelect," in TW3AlertDialog.HandleYesClick [line: 107, column: 42, file: SmartCL.Dialogs]")(Self,2);
               break;
         }
      }
   }
   /// procedure TW3AlertDialog.InitializeObject()
   ///  [line: 68, column: 26, file: SmartCL.Dialogs]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      $Check(Self," in TW3AlertDialog.InitializeObject [line: 71, column: 3, file: SmartCL.Dialogs]").FYes = TW3Component.Create$18$($New(TW3AlertButton),Self);
      TW3MovableControl.SetSize($Check($Check(Self," in TW3AlertDialog.InitializeObject [line: 72, column: 3, file: SmartCL.Dialogs]").FYes," in TW3AlertDialog.InitializeObject [line: 72, column: 8, file: SmartCL.Dialogs]"),120,42);
      TW3Button.SetCaption($Check(Self," in TW3AlertDialog.InitializeObject [line: 73, column: 3, file: SmartCL.Dialogs]").FYes,"OK");
      TW3CustomControl._setMouseClick($Check(Self," in TW3AlertDialog.InitializeObject [line: 74, column: 3, file: SmartCL.Dialogs]").FYes,$Event1(Self,TW3AlertDialog.HandleYesClick));
      TW3MovableControl.SetVisible($Check($Check(Self," in TW3AlertDialog.InitializeObject [line: 75, column: 3, file: SmartCL.Dialogs]").FYes," in TW3AlertDialog.InitializeObject [line: 75, column: 8, file: SmartCL.Dialogs]"),false);
      $Check(Self," in TW3AlertDialog.InitializeObject [line: 77, column: 3, file: SmartCL.Dialogs]").FNo = TW3Component.Create$18$($New(TW3AlertButton),Self);
      TW3MovableControl.SetSize($Check($Check(Self," in TW3AlertDialog.InitializeObject [line: 78, column: 3, file: SmartCL.Dialogs]").FNo," in TW3AlertDialog.InitializeObject [line: 78, column: 7, file: SmartCL.Dialogs]"),120,42);
      TW3Button.SetCaption($Check(Self," in TW3AlertDialog.InitializeObject [line: 79, column: 3, file: SmartCL.Dialogs]").FNo,"Cancel");
      TW3CustomControl._setMouseClick($Check(Self," in TW3AlertDialog.InitializeObject [line: 80, column: 3, file: SmartCL.Dialogs]").FNo,$Event1(Self,TW3AlertDialog.HandleNoClick));
      TW3MovableControl.SetVisible($Check($Check(Self," in TW3AlertDialog.InitializeObject [line: 81, column: 3, file: SmartCL.Dialogs]").FNo," in TW3AlertDialog.InitializeObject [line: 81, column: 7, file: SmartCL.Dialogs]"),false);
      $Check(Self," in TW3AlertDialog.InitializeObject [line: 83, column: 3, file: SmartCL.Dialogs]").FTitle = TW3Component.Create$18$($New(TW3Label),Self);
      $Check(Self," in TW3AlertDialog.InitializeObject [line: 84, column: 3, file: SmartCL.Dialogs]").FText = TW3Component.Create$18$($New(TW3Label),Self);
   }
   /// procedure TW3AlertDialog.Resize()
   ///  [line: 194, column: 26, file: SmartCL.Dialogs]
   ,Resize:function(Self) {
      var hd$2 = 0;
      var wd$2 = 0;
      var dx$3 = 0;
      var dy$4 = 0;
      TW3MovableControl.Resize(Self);
      wd$2 = TW3ScrollInfo.GetScrollWidth(TW3CustomControl.GetScrollInfo(Self));
      hd$2 = TW3ScrollInfo.GetScrollHeight(TW3CustomControl.GetScrollInfo(Self));
      TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3AlertDialog.Resize [line: 206, column: 3, file: SmartCL.Dialogs]").FTitle," in TW3AlertDialog.Resize [line: 206, column: 10, file: SmartCL.Dialogs]"),8,8,wd$2-16,32);
      TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3AlertDialog.Resize [line: 209, column: 3, file: SmartCL.Dialogs]").FText," in TW3AlertDialog.Resize [line: 209, column: 9, file: SmartCL.Dialogs]"),8,TW3MovableControl.GetTop($Check($Check(Self," in TW3AlertDialog.Resize [line: 210, column: 3, file: SmartCL.Dialogs]").FTitle," in TW3AlertDialog.Resize [line: 210, column: 10, file: SmartCL.Dialogs]"))+TW3MovableControl.GetHeight$($Check($Check(Self," in TW3AlertDialog.Resize [line: 210, column: 16, file: SmartCL.Dialogs]").FTitle," in TW3AlertDialog.Resize [line: 210, column: 23, file: SmartCL.Dialogs]"))+2,wd$2-16,92);
      if ($Check(Self," in TW3AlertDialog.Resize [line: 213, column: 6, file: SmartCL.Dialogs]").FObjReady&&$Check(Self," in TW3AlertDialog.Resize [line: 214, column: 7, file: SmartCL.Dialogs]").FReady) {
         (wd$2-= 16);
         if ((1<<$Check(Self," in TW3AlertDialog.Resize [line: 220, column: 9, file: SmartCL.Dialogs]").FOptions&36)!=0) {
            (wd$2-= 8);
         }
         if ((1<<$Check(Self," in TW3AlertDialog.Resize [line: 224, column: 9, file: SmartCL.Dialogs]").FOptions&27)!=0) {
            if ((1<<$Check(Self," in TW3AlertDialog.Resize [line: 226, column: 11, file: SmartCL.Dialogs]").FOptions&9)!=0) {
               dy$4 = TW3MovableControl.GetHeight$($Check(Self," in TW3AlertDialog.Resize [line: 228, column: 15, file: SmartCL.Dialogs]"))-(TW3MovableControl.GetHeight$($Check($Check(Self," in TW3AlertDialog.Resize [line: 228, column: 23, file: SmartCL.Dialogs]").FYes," in TW3AlertDialog.Resize [line: 228, column: 28, file: SmartCL.Dialogs]"))+20);
               TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3AlertDialog.Resize [line: 229, column: 9, file: SmartCL.Dialogs]").FYes," in TW3AlertDialog.Resize [line: 229, column: 14, file: SmartCL.Dialogs]"),10,dy$4,wd$2,TW3MovableControl.GetHeight$($Check($Check(Self," in TW3AlertDialog.Resize [line: 229, column: 33, file: SmartCL.Dialogs]").FYes," in TW3AlertDialog.Resize [line: 229, column: 38, file: SmartCL.Dialogs]")));
            } else if ((1<<$Check(Self," in TW3AlertDialog.Resize [line: 231, column: 11, file: SmartCL.Dialogs]").FOptions&18)!=0) {
               dy$4 = TW3MovableControl.GetHeight$($Check(Self," in TW3AlertDialog.Resize [line: 233, column: 15, file: SmartCL.Dialogs]"))-(TW3MovableControl.GetHeight$($Check($Check(Self," in TW3AlertDialog.Resize [line: 233, column: 23, file: SmartCL.Dialogs]").FNo," in TW3AlertDialog.Resize [line: 233, column: 27, file: SmartCL.Dialogs]"))+20);
               TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3AlertDialog.Resize [line: 234, column: 9, file: SmartCL.Dialogs]").FNo," in TW3AlertDialog.Resize [line: 234, column: 13, file: SmartCL.Dialogs]"),10,dy$4,wd$2,TW3MovableControl.GetHeight$($Check($Check(Self," in TW3AlertDialog.Resize [line: 234, column: 35, file: SmartCL.Dialogs]").FNo," in TW3AlertDialog.Resize [line: 234, column: 39, file: SmartCL.Dialogs]")));
            }
         } else if ((1<<$Check(Self," in TW3AlertDialog.Resize [line: 237, column: 9, file: SmartCL.Dialogs]").FOptions&36)!=0) {
            dy$4 = hd$2-(TW3MovableControl.GetHeight$($Check($Check(Self," in TW3AlertDialog.Resize [line: 239, column: 17, file: SmartCL.Dialogs]").FYes," in TW3AlertDialog.Resize [line: 239, column: 22, file: SmartCL.Dialogs]"))+8);
            TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3AlertDialog.Resize [line: 240, column: 7, file: SmartCL.Dialogs]").FYes," in TW3AlertDialog.Resize [line: 240, column: 12, file: SmartCL.Dialogs]"),8,dy$4,$Div(wd$2,2),TW3MovableControl.GetHeight$($Check($Check(Self," in TW3AlertDialog.Resize [line: 240, column: 61, file: SmartCL.Dialogs]").FYes," in TW3AlertDialog.Resize [line: 240, column: 66, file: SmartCL.Dialogs]")));
            dx$3 = TW3ScrollInfo.GetScrollWidth(TW3CustomControl.GetScrollInfo(Self))-($Div(wd$2,2));
            (dx$3-= 8);
            TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3AlertDialog.Resize [line: 244, column: 7, file: SmartCL.Dialogs]").FNo," in TW3AlertDialog.Resize [line: 244, column: 11, file: SmartCL.Dialogs]"),dx$3,dy$4,$Div(wd$2,2),TW3MovableControl.GetHeight$($Check($Check(Self," in TW3AlertDialog.Resize [line: 244, column: 37, file: SmartCL.Dialogs]").FNo," in TW3AlertDialog.Resize [line: 244, column: 41, file: SmartCL.Dialogs]")));
         }
      }
   }
   /// procedure TW3AlertDialog.SetupDialog(aTitle: String; aText: String; aOptions: TW3AlertOptions)
   ///  [line: 123, column: 26, file: SmartCL.Dialogs]
   ,SetupDialog:function(Self, aTitle, aText$1, aOptions) {
      if (!$Check(Self," in TW3AlertDialog.SetupDialog [line: 125, column: 10, file: SmartCL.Dialogs]").FReady) {
         TW3TagObj.BeginUpdate(Self);
         try {
            $Check(Self," in TW3AlertDialog.SetupDialog [line: 130, column: 7, file: SmartCL.Dialogs]").FOptions = aOptions;
            TW3Label.SetCaption$1($Check($Check(Self," in TW3AlertDialog.SetupDialog [line: 131, column: 7, file: SmartCL.Dialogs]").FTitle," in TW3AlertDialog.SetupDialog [line: 131, column: 14, file: SmartCL.Dialogs]"),aTitle);
            TW3Label.SetCaption$1($Check($Check(Self," in TW3AlertDialog.SetupDialog [line: 132, column: 7, file: SmartCL.Dialogs]").FText," in TW3AlertDialog.SetupDialog [line: 132, column: 13, file: SmartCL.Dialogs]"),aText$1);
            switch ($Check(Self," in TW3AlertDialog.SetupDialog [line: 135, column: 12, file: SmartCL.Dialogs]").FOptions) {
               case 0 :
               case 3 :
                  TW3MovableControl.SetVisible($Check($Check(Self," in TW3AlertDialog.SetupDialog [line: 138, column: 11, file: SmartCL.Dialogs]").FYes," in TW3AlertDialog.SetupDialog [line: 138, column: 16, file: SmartCL.Dialogs]"),true);
                  TW3MovableControl.SetVisible($Check($Check(Self," in TW3AlertDialog.SetupDialog [line: 139, column: 11, file: SmartCL.Dialogs]").FNo," in TW3AlertDialog.SetupDialog [line: 139, column: 15, file: SmartCL.Dialogs]"),false);
                  break;
               case 1 :
               case 4 :
                  TW3MovableControl.SetVisible($Check($Check(Self," in TW3AlertDialog.SetupDialog [line: 143, column: 11, file: SmartCL.Dialogs]").FNo," in TW3AlertDialog.SetupDialog [line: 143, column: 15, file: SmartCL.Dialogs]"),true);
                  TW3MovableControl.SetVisible($Check($Check(Self," in TW3AlertDialog.SetupDialog [line: 144, column: 11, file: SmartCL.Dialogs]").FYes," in TW3AlertDialog.SetupDialog [line: 144, column: 16, file: SmartCL.Dialogs]"),false);
                  break;
               case 2 :
               case 5 :
                  TW3MovableControl.SetVisible($Check($Check(Self," in TW3AlertDialog.SetupDialog [line: 148, column: 11, file: SmartCL.Dialogs]").FYes," in TW3AlertDialog.SetupDialog [line: 148, column: 16, file: SmartCL.Dialogs]"),true);
                  TW3MovableControl.SetVisible($Check($Check(Self," in TW3AlertDialog.SetupDialog [line: 149, column: 11, file: SmartCL.Dialogs]").FNo," in TW3AlertDialog.SetupDialog [line: 149, column: 15, file: SmartCL.Dialogs]"),true);
                  break;
            }
            switch ($Check(Self," in TW3AlertDialog.SetupDialog [line: 154, column: 12, file: SmartCL.Dialogs]").FOptions) {
               case 0 :
                  TW3Button.SetCaption($Check(Self," in TW3AlertDialog.SetupDialog [line: 155, column: 17, file: SmartCL.Dialogs]").FYes,"Yes");
                  break;
               case 1 :
                  TW3Button.SetCaption($Check(Self," in TW3AlertDialog.SetupDialog [line: 156, column: 17, file: SmartCL.Dialogs]").FNo,"No");
                  break;
               case 3 :
                  TW3Button.SetCaption($Check(Self," in TW3AlertDialog.SetupDialog [line: 157, column: 17, file: SmartCL.Dialogs]").FYes,"OK");
                  break;
               case 4 :
                  TW3Button.SetCaption($Check(Self," in TW3AlertDialog.SetupDialog [line: 158, column: 17, file: SmartCL.Dialogs]").FNo,"Cancel");
                  break;
               case 2 :
                  TW3Button.SetCaption($Check(Self," in TW3AlertDialog.SetupDialog [line: 161, column: 11, file: SmartCL.Dialogs]").FYes,"Yes");
                  TW3Button.SetCaption($Check(Self," in TW3AlertDialog.SetupDialog [line: 162, column: 11, file: SmartCL.Dialogs]").FNo,"No");
                  break;
               case 5 :
                  TW3Button.SetCaption($Check(Self," in TW3AlertDialog.SetupDialog [line: 166, column: 11, file: SmartCL.Dialogs]").FYes,"OK");
                  TW3Button.SetCaption($Check(Self," in TW3AlertDialog.SetupDialog [line: 167, column: 11, file: SmartCL.Dialogs]").FNo,"Cancel");
                  break;
            }
            TW3CustomFont.SetName$1(TW3CustomControl.GetFont($Check(Self," in TW3AlertDialog.SetupDialog [line: 171, column: 7, file: SmartCL.Dialogs]").FTitle),"Helvetica, Arial, sans-serif");
            TW3CustomFont.SetWeight(TW3CustomControl.GetFont($Check(Self," in TW3AlertDialog.SetupDialog [line: 172, column: 7, file: SmartCL.Dialogs]").FTitle),"bold");
            TW3CustomFont.SetSize$5(TW3CustomControl.GetFont($Check(Self," in TW3AlertDialog.SetupDialog [line: 173, column: 7, file: SmartCL.Dialogs]").FTitle),24);
            TW3Label.SetTextAlign$1($Check($Check(Self," in TW3AlertDialog.SetupDialog [line: 174, column: 7, file: SmartCL.Dialogs]").FTitle," in TW3AlertDialog.SetupDialog [line: 174, column: 14, file: SmartCL.Dialogs]"),1);
            TW3CustomFont.SetColor$2(TW3CustomControl.GetFont($Check(Self," in TW3AlertDialog.SetupDialog [line: 175, column: 7, file: SmartCL.Dialogs]").FTitle),16777215);
            $Check($Check($Check(Self," in TW3AlertDialog.SetupDialog [line: 176, column: 7, file: SmartCL.Dialogs]").FTitle," in TW3AlertDialog.SetupDialog [line: 176, column: 23, file: SmartCL.Dialogs]").FContainer," in TW3AlertDialog.SetupDialog [line: 176, column: 30, file: SmartCL.Dialogs]").FHandle.style["text-shadow"] = "0 -1px 0 rgba(0,0,0,.8)";
            TW3CustomFont.SetSize$5(TW3CustomControl.GetFont($Check(Self," in TW3AlertDialog.SetupDialog [line: 178, column: 7, file: SmartCL.Dialogs]").FText),16);
            TW3CustomFont.SetName$1(TW3CustomControl.GetFont($Check(Self," in TW3AlertDialog.SetupDialog [line: 179, column: 7, file: SmartCL.Dialogs]").FText),"Helvetica, Arial, sans-serif");
            TW3Label.SetTextAlign$1($Check($Check(Self," in TW3AlertDialog.SetupDialog [line: 180, column: 7, file: SmartCL.Dialogs]").FText," in TW3AlertDialog.SetupDialog [line: 180, column: 13, file: SmartCL.Dialogs]"),1);
            $Check(Self," in TW3AlertDialog.SetupDialog [line: 183, column: 7, file: SmartCL.Dialogs]").FReady = true;
         } finally {
            TW3MovableControl.SetWasSized(Self);
            TW3MovableControl.SetWasMoved(Self);
            TW3TagObj.EndUpdate($Check(Self," in TW3AlertDialog.SetupDialog [line: 188, column: 7, file: SmartCL.Dialogs]"));
         }
      }
   }
   /// procedure TW3AlertDialog.StyleTagObject()
   ///  [line: 96, column: 26, file: SmartCL.Dialogs]
   ,StyleTagObject:function(Self) {
      TW3CustomControl.StyleTagObject(Self);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject$:function($){return $.ClassType.StyleTagObject($)}
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize$:function($){return $.ClassType.Resize($)}
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
TW3AlertDialog.$Intf={
   IW3AlertDialog:[TW3AlertDialog.SetupDialog]
}
/// TW3Button = class (TW3CustomControl)
///  [line: 18, column: 3, file: SmartCL.Controls.Button]
var TW3Button = {
   $ClassName:"TW3Button",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FIgnoreMouse = 0;
      $.FPressed = false;
      $.FTouchEnd = null;
      $.FTouchMove = null;
      $.FTouchX = $.FTouchY = 0;
   }
   /// procedure TW3Button.CBClick(eventObj: JEvent)
   ///  [line: 165, column: 21, file: SmartCL.Controls.Button]
   ,CBClick:function(Self, eventObj$18) {
      if ($Check(Self," in TW3Button.CBClick [line: 167, column: 6, file: SmartCL.Controls.Button]").FPressed) {
         TW3Button.ResetClick(Self);
         TW3CustomControl.CBClick(Self,eventObj$18);
      } else {
         TW3Button.ResetClick(Self);
      }
   }
   /// procedure TW3Button.CBKeyDown(eventObj: JKeyboardEvent)
   ///  [line: 173, column: 21, file: SmartCL.Controls.Button]
   ,CBKeyDown:function(Self, eventObj$19) {
      TW3CustomControl.CBKeyDown(Self,eventObj$19);
      if (TW3CustomControl.GetEnabled$($Check(Self," in TW3Button.CBKeyDown [line: 176, column: 6, file: SmartCL.Controls.Button]"))&&(($Check(eventObj$19," in TW3Button.CBKeyDown [line: 176, column: 28, file: SmartCL.Controls.Button]").keyCode==13)||($Check(eventObj$19," in TW3Button.CBKeyDown [line: 176, column: 28, file: SmartCL.Controls.Button]").keyCode==32))) {
         TW3Button.SetPressed(Self,true);
      }
   }
   /// procedure TW3Button.CBKeyUp(eventObj: JKeyboardEvent)
   ///  [line: 180, column: 21, file: SmartCL.Controls.Button]
   ,CBKeyUp:function(Self, eventObj$20) {
      TW3CustomControl.CBKeyDown(Self,eventObj$20);
      switch ($Check(eventObj$20," in TW3Button.CBKeyUp [line: 183, column: 17, file: SmartCL.Controls.Button]").keyCode) {
         case 13 :
         case 32 :
            if (TW3CustomControl.GetEnabled$($Check(Self," in TW3Button.CBKeyUp [line: 185, column: 10, file: SmartCL.Controls.Button]"))&&$Check(Self," in TW3Button.CBKeyUp [line: 185, column: 22, file: SmartCL.Controls.Button]").FPressed) {
               TW3CustomControl.CBClick$($Check(Self," in TW3Button.CBKeyUp [line: 186, column: 9, file: SmartCL.Controls.Button]"),eventObj$20);
            }
            break;
         case 27 :
            TW3Button.SetPressed(Self,false);
            break;
      }
   }
   /// procedure TW3Button.CBMouseDown(eventObj: JMouseEvent)
   ///  [line: 141, column: 21, file: SmartCL.Controls.Button]
   ,CBMouseDown:function(Self, eventObj$21) {
      TW3CustomControl.CBMouseDown(Self,eventObj$21);
      if (PerformanceTimer.Now$1()<$Check(Self," in TW3Button.CBMouseDown [line: 144, column: 27, file: SmartCL.Controls.Button]").FIgnoreMouse) {
         return;
      }
      if (TW3CustomControl.GetEnabled$($Check(Self," in TW3Button.CBMouseDown [line: 145, column: 6, file: SmartCL.Controls.Button]"))&&($Check(eventObj$21," in TW3Button.CBMouseDown [line: 145, column: 28, file: SmartCL.Controls.Button]").button==0)) {
         TW3Button.SetPressed(Self,true);
         TW3CustomControl.SetCapture(Self);
      }
   }
   /// procedure TW3Button.CBMouseMove(eventObj: JMouseEvent)
   ///  [line: 158, column: 21, file: SmartCL.Controls.Button]
   ,CBMouseMove:function(Self, eventObj$22) {
      TW3CustomControl.CBMouseMove(Self,eventObj$22);
      if (TW3CustomControl.a$2(Self)) {
         TW3Button.SetPressed(Self,TRect$ContainsPos$1(TW3MovableControl.ScreenRect(Self),$Check(eventObj$22," in TW3Button.CBMouseMove [line: 162, column: 48, file: SmartCL.Controls.Button]").clientX,$Check(eventObj$22," in TW3Button.CBMouseMove [line: 162, column: 66, file: SmartCL.Controls.Button]").clientY));
      }
   }
   /// procedure TW3Button.CBMouseUp(eventObj: JMouseEvent)
   ///  [line: 151, column: 21, file: SmartCL.Controls.Button]
   ,CBMouseUp:function(Self, eventObj$23) {
      TW3CustomControl.CBMouseUp(Self,eventObj$23);
      if (TW3CustomControl.a$2(Self)&&($Check(eventObj$23," in TW3Button.CBMouseUp [line: 154, column: 34, file: SmartCL.Controls.Button]").button==0)) {
         TW3CustomControl.CBClick$($Check(Self," in TW3Button.CBMouseUp [line: 155, column: 5, file: SmartCL.Controls.Button]"),eventObj$23);
      }
   }
   /// function TW3Button.GetCaption() : String
   ///  [line: 58, column: 20, file: SmartCL.Controls.Button]
   ,GetCaption:function(Self) {
      var Result = "";
      if ($Check(Self," in TW3Button.GetCaption [line: 60, column: 7, file: SmartCL.Controls.Button]").FHandle) {
         Result = ""+$Check(Self," in TW3Button.GetCaption [line: 61, column: 15, file: SmartCL.Controls.Button]").FHandle.innerHTML;
      }
      return Result
   }
   /// procedure TW3Button.InitializeObject()
   ///  [line: 70, column: 21, file: SmartCL.Controls.Button]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      TW3MovableControl.SetWidth$($Check(Self," in TW3Button.InitializeObject [line: 73, column: 3, file: SmartCL.Controls.Button]"),100);
      TW3MovableControl.SetHeight$($Check(Self," in TW3Button.InitializeObject [line: 74, column: 3, file: SmartCL.Controls.Button]"),32);
      $Check(Self," in TW3Button.InitializeObject [line: 79, column: 9, file: SmartCL.Controls.Button]").FHandle.addEventListener("touchstart",function (e$9) {
         var t = null;
         if (!TW3CustomControl.GetEnabled$($Check(Self," in  [line: 81, column: 14, file: SmartCL.Controls.Button]"))) {
            return;
         }
         if ($Check(Self," in  [line: 82, column: 10, file: SmartCL.Controls.Button]").FPressed) {
            return;
         }
         TW3Button.SetPressed(Self,true);
         e$9.stopPropagation();
         $Check(Self," in  [line: 88, column: 13, file: SmartCL.Controls.Button]").FHandle.addEventListener("touchmove",$Check(Self," in  [line: 88, column: 45, file: SmartCL.Controls.Button]").FTouchMove,false);
         document.body.addEventListener("touchend",$Check(Self," in  [line: 89, column: 53, file: SmartCL.Controls.Button]").FTouchEnd,false);
         t = $Check(e$9," in  [line: 91, column: 18, file: SmartCL.Controls.Button]").touches[0];
         $Check(Self," in  [line: 92, column: 7, file: SmartCL.Controls.Button]").FTouchX = $Check(t," in  [line: 92, column: 20, file: SmartCL.Controls.Button]").clientX;
         $Check(Self," in  [line: 93, column: 7, file: SmartCL.Controls.Button]").FTouchY = $Check(t," in  [line: 93, column: 20, file: SmartCL.Controls.Button]").clientY;
      },false);
      $Check(Self," in TW3Button.InitializeObject [line: 96, column: 3, file: SmartCL.Controls.Button]").FTouchMove = function (e$10) {
         var t$1 = null;
         t$1 = $Check(e$10," in  [line: 97, column: 16, file: SmartCL.Controls.Button]").touches[0];
         if ((Math.abs($Check(t$1," in  [line: 98, column: 15, file: SmartCL.Controls.Button]").clientX-$Check(Self," in  [line: 98, column: 23, file: SmartCL.Controls.Button]").FTouchX)>10)||(Math.abs($Check(t$1," in  [line: 98, column: 46, file: SmartCL.Controls.Button]").clientY-$Check(Self," in  [line: 98, column: 54, file: SmartCL.Controls.Button]").FTouchY)>10)) {
            TW3Button.ResetClick(Self);
         }
      };
      $Check(Self," in TW3Button.InitializeObject [line: 102, column: 3, file: SmartCL.Controls.Button]").FTouchEnd = function (e$11) {
         TW3CustomControl.CBClick$($Check(Self," in  [line: 103, column: 5, file: SmartCL.Controls.Button]"),e$11);
         $Check(Self," in  [line: 104, column: 5, file: SmartCL.Controls.Button]").FIgnoreMouse = PerformanceTimer.Now$1()+1000;
      };
      TW3CustomControl._setMouseDown(Self,null);
      TW3CustomControl._setMouseUp(Self,null);
      TW3CustomControl._setMouseMove(Self,null);
      TW3CustomControl._setKeyDown(Self,null);
      TW3CustomControl._setKeyUp(Self,null);
   }
   /// function TW3Button.MakeElementTagObj() : THandle
   ///  [line: 115, column: 20, file: SmartCL.Controls.Button]
   ,MakeElementTagObj:function(Self) {
      return w3_createHtmlElement("button");
   }
   /// procedure TW3Button.ResetClick()
   ///  [line: 130, column: 21, file: SmartCL.Controls.Button]
   ,ResetClick:function(Self) {
      TW3Button.SetPressed(Self,false);
      if (TW3CustomControl.a$2(Self)) {
         TW3CustomControl.ReleaseCapture(Self);
      } else {
         $Check(Self," in TW3Button.ResetClick [line: 136, column: 11, file: SmartCL.Controls.Button]").FHandle.removeEventListener("touchmove",$Check(Self," in TW3Button.ResetClick [line: 136, column: 46, file: SmartCL.Controls.Button]").FTouchMove,false);
         document.body.removeEventListener("touchend",$Check(Self," in TW3Button.ResetClick [line: 137, column: 54, file: SmartCL.Controls.Button]").FTouchEnd,false);
      }
   }
   /// procedure TW3Button.SetCaption(Value: String)
   ///  [line: 64, column: 21, file: SmartCL.Controls.Button]
   ,SetCaption:function(Self, Value$12) {
      if ($Check(Self," in TW3Button.SetCaption [line: 66, column: 7, file: SmartCL.Controls.Button]").FHandle) {
         $Check(Self," in TW3Button.SetCaption [line: 67, column: 11, file: SmartCL.Controls.Button]").FHandle.innerHTML = Value$12;
      }
   }
   /// procedure TW3Button.SetPressed(value: Boolean)
   ///  [line: 120, column: 21, file: SmartCL.Controls.Button]
   ,SetPressed:function(Self, value$5) {
      if ($Check(Self," in TW3Button.SetPressed [line: 122, column: 6, file: SmartCL.Controls.Button]").FPressed!=value$5) {
         $Check(Self," in TW3Button.SetPressed [line: 123, column: 5, file: SmartCL.Controls.Button]").FPressed = value$5;
         if (value$5) {
            w3_AddClass($Check(Self," in TW3Button.SetPressed [line: 125, column: 19, file: SmartCL.Controls.Button]").FHandle,PressedCSSClass);
         } else {
            w3_RemoveClass($Check(Self," in TW3Button.SetPressed [line: 126, column: 25, file: SmartCL.Controls.Button]").FHandle,PressedCSSClass);
         }
      }
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj$:function($){return $.ClassType.MakeElementTagObj($)}
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick$:function($){return $.ClassType.CBClick.apply($.ClassType, arguments)}
   ,CBKeyDown$:function($){return $.ClassType.CBKeyDown.apply($.ClassType, arguments)}
   ,CBKeyUp$:function($){return $.ClassType.CBKeyUp.apply($.ClassType, arguments)}
   ,CBMouseDown$:function($){return $.ClassType.CBMouseDown.apply($.ClassType, arguments)}
   ,CBMouseMove$:function($){return $.ClassType.CBMouseMove.apply($.ClassType, arguments)}
   ,CBMouseUp$:function($){return $.ClassType.CBMouseUp.apply($.ClassType, arguments)}
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3AlertButton = class (TW3Button)
///  [line: 31, column: 3, file: SmartCL.Dialogs]
var TW3AlertButton = {
   $ClassName:"TW3AlertButton",
   $Parent:TW3Button
   ,$Init:function ($) {
      TW3Button.$Init($);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3Button.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3Button.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3Button.CBClick
   ,CBKeyDown:TW3Button.CBKeyDown
   ,CBKeyUp:TW3Button.CBKeyUp
   ,CBMouseDown:TW3Button.CBMouseDown
   ,CBMouseMove:TW3Button.CBMouseMove
   ,CBMouseUp:TW3Button.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3LabelText = class (TW3CustomControl)
///  [line: 19, column: 3, file: SmartCL.Controls.Label]
var TW3LabelText = {
   $ClassName:"TW3LabelText",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3CustomControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3Label = class (TW3CustomControl)
///  [line: 22, column: 3, file: SmartCL.Controls.Label]
var TW3Label = {
   $ClassName:"TW3Label",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FCaption$1 = "";
      $.FContainer = null;
      $.FTextAlign = 0;
   }
   /// procedure TW3Label.FinalizeObject()
   ///  [line: 66, column: 20, file: SmartCL.Controls.Label]
   ,FinalizeObject:function(Self) {
      TObject.Free($Check(Self," in TW3Label.FinalizeObject [line: 68, column: 3, file: SmartCL.Controls.Label]").FContainer);
      TW3CustomControl.FinalizeObject(Self);
   }
   /// procedure TW3Label.InitializeObject()
   ///  [line: 51, column: 20, file: SmartCL.Controls.Label]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      $Check(Self," in TW3Label.InitializeObject [line: 54, column: 3, file: SmartCL.Controls.Label]").FContainer = TW3Component.Create$18$($New(TW3LabelText),Self);
      w3_setCssStyle($Check($Check(Self," in TW3Label.InitializeObject [line: 56, column: 18, file: SmartCL.Controls.Label]").FContainer," in TW3Label.InitializeObject [line: 56, column: 29, file: SmartCL.Controls.Label]").FHandle,"text-overflow","ellipsis");
      w3_setCssStyle($Check($Check(Self," in TW3Label.InitializeObject [line: 57, column: 18, file: SmartCL.Controls.Label]").FContainer," in TW3Label.InitializeObject [line: 57, column: 29, file: SmartCL.Controls.Label]").FHandle,w3_CSSPrefixDef("text-overflow"),"ellipsis");
      w3_setCssStyle($Check($Check(Self," in TW3Label.InitializeObject [line: 58, column: 18, file: SmartCL.Controls.Label]").FContainer," in TW3Label.InitializeObject [line: 58, column: 29, file: SmartCL.Controls.Label]").FHandle,"white-space","nowrap");
      w3_setCssStyle($Check($Check(Self," in TW3Label.InitializeObject [line: 59, column: 18, file: SmartCL.Controls.Label]").FContainer," in TW3Label.InitializeObject [line: 59, column: 29, file: SmartCL.Controls.Label]").FHandle,"overflow","hidden");
      w3_setCssStyle($Check($Check(Self," in TW3Label.InitializeObject [line: 61, column: 18, file: SmartCL.Controls.Label]").FContainer," in TW3Label.InitializeObject [line: 61, column: 29, file: SmartCL.Controls.Label]").FHandle,w3_CSSPrefixDef("vertical-align"),"middle");
      TW3Label.SetCaption$1($Check(Self," in TW3Label.InitializeObject [line: 62, column: 3, file: SmartCL.Controls.Label]"),"Label");
      TW3MovableControl.SetHeight$($Check(Self," in TW3Label.InitializeObject [line: 63, column: 3, file: SmartCL.Controls.Label]"),12);
   }
   /// function TW3Label.MakeElementTagObj() : THandle
   ///  [line: 77, column: 19, file: SmartCL.Controls.Label]
   ,MakeElementTagObj:function(Self) {
      return w3_createHtmlElement("fieldset");
   }
   /// procedure TW3Label.Resize()
   ///  [line: 82, column: 20, file: SmartCL.Controls.Label]
   ,Resize:function(Self) {
      var dx$4 = 0;
      var dy$5 = 0;
      var wd$3 = 0;
      var hd$3 = 0;
      TW3MovableControl.Resize(Self);
      TW3TagObj.BeginUpdate($Check(Self," in TW3Label.Resize [line: 89, column: 3, file: SmartCL.Controls.Label]").FContainer);
      TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3Label.Resize [line: 91, column: 3, file: SmartCL.Controls.Label]").FContainer," in TW3Label.Resize [line: 91, column: 14, file: SmartCL.Controls.Label]"),0,0,2,2);
      wd$3 = ClampInt(TW3ScrollInfo.GetScrollWidth(TW3CustomControl.GetScrollInfo($Check(Self," in TW3Label.Resize [line: 92, column: 18, file: SmartCL.Controls.Label]").FContainer))+2,0,TW3MovableControl.ClientWidth(Self));
      hd$3 = ClampInt(TW3ScrollInfo.GetScrollHeight(TW3CustomControl.GetScrollInfo($Check(Self," in TW3Label.Resize [line: 93, column: 18, file: SmartCL.Controls.Label]").FContainer)),0,TW3MovableControl.ClientHeight(Self));
      switch ($Check(Self," in TW3Label.Resize [line: 95, column: 8, file: SmartCL.Controls.Label]").FTextAlign) {
         case 0 :
            dy$5 = ($Div(TW3MovableControl.ClientHeight(Self),2))-($Div(hd$3,2));
            TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3Label.Resize [line: 99, column: 9, file: SmartCL.Controls.Label]").FContainer," in TW3Label.Resize [line: 99, column: 20, file: SmartCL.Controls.Label]"),0,dy$5,wd$3,hd$3);
            break;
         case 1 :
            dx$4 = ($Div(TW3MovableControl.ClientWidth(Self),2))-($Div(wd$3,2));
            dy$5 = ($Div(TW3MovableControl.ClientHeight(Self),2))-($Div(hd$3,2));
            TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3Label.Resize [line: 105, column: 9, file: SmartCL.Controls.Label]").FContainer," in TW3Label.Resize [line: 105, column: 20, file: SmartCL.Controls.Label]"),dx$4,dy$5,wd$3,hd$3);
            break;
         case 2 :
            dx$4 = TW3MovableControl.ClientWidth(Self)-wd$3;
            dy$5 = ($Div(TW3MovableControl.ClientHeight(Self),2))-($Div(hd$3,2));
            TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3Label.Resize [line: 111, column: 9, file: SmartCL.Controls.Label]").FContainer," in TW3Label.Resize [line: 111, column: 20, file: SmartCL.Controls.Label]"),dx$4,dy$5,wd$3,hd$3);
            break;
      }
      TW3TagObj.EndUpdate($Check($Check(Self," in TW3Label.Resize [line: 114, column: 3, file: SmartCL.Controls.Label]").FContainer," in TW3Label.Resize [line: 114, column: 14, file: SmartCL.Controls.Label]"));
   }
   /// procedure TW3Label.SetCaption(const aValue: String)
   ///  [line: 117, column: 20, file: SmartCL.Controls.Label]
   ,SetCaption$1:function(Self, aValue$60) {
      if (aValue$60!=$Check(Self," in TW3Label.SetCaption [line: 119, column: 16, file: SmartCL.Controls.Label]").FCaption$1) {
         TW3TagObj.BeginUpdate(Self);
         $Check(Self," in TW3Label.SetCaption [line: 122, column: 5, file: SmartCL.Controls.Label]").FCaption$1 = aValue$60;
         TW3TagObj.SetInnerHTML($Check(Self," in TW3Label.SetCaption [line: 123, column: 5, file: SmartCL.Controls.Label]").FContainer,aValue$60);
         TW3MovableControl.SetWasSized(Self);
         TW3MovableControl.SetWasMoved(Self);
         TW3TagObj.EndUpdate($Check(Self," in TW3Label.SetCaption [line: 126, column: 5, file: SmartCL.Controls.Label]"));
      }
   }
   /// procedure TW3Label.SetEnabled(aValue: Boolean)
   ///  [line: 130, column: 20, file: SmartCL.Controls.Label]
   ,SetEnabled:function(Self, aValue$61) {
      TW3CustomControl.SetEnabled(Self,aValue$61);
      TW3CustomControl.SetEnabled$($Check($Check(Self," in TW3Label.SetEnabled [line: 133, column: 3, file: SmartCL.Controls.Label]").FContainer," in TW3Label.SetEnabled [line: 133, column: 14, file: SmartCL.Controls.Label]"),aValue$61);
   }
   /// procedure TW3Label.SetTextAlign(aNewAlignment: TTextAlign)
   ///  [line: 136, column: 20, file: SmartCL.Controls.Label]
   ,SetTextAlign$1:function(Self, aNewAlignment) {
      var AlignmentText = "";
      TW3TagObj.BeginUpdate(Self);
      $Check(Self," in TW3Label.SetTextAlign [line: 141, column: 3, file: SmartCL.Controls.Label]").FTextAlign = aNewAlignment;
      switch (aNewAlignment) {
         case 0 :
            AlignmentText = "left";
            break;
         case 1 :
            AlignmentText = "center";
            break;
         case 2 :
            AlignmentText = "right";
            break;
      }
      w3_setCssStyle($Check($Check(Self," in TW3Label.SetTextAlign [line: 149, column: 18, file: SmartCL.Controls.Label]").FContainer," in TW3Label.SetTextAlign [line: 149, column: 29, file: SmartCL.Controls.Label]").FHandle,"text-align",AlignmentText);
      TW3MovableControl.SetWasSized(Self);
      TW3MovableControl.SetWasMoved(Self);
      TW3TagObj.EndUpdate($Check(Self," in TW3Label.SetTextAlign [line: 152, column: 3, file: SmartCL.Controls.Label]"));
   }
   /// function TW3Label.SupportAdjustment() : Boolean
   ///  [line: 72, column: 25, file: SmartCL.Controls.Label]
   ,supportAdjustment:function(Self) {
      return false;
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj$:function($){return $.ClassType.MakeElementTagObj($)}
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize$:function($){return $.ClassType.Resize($)}
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment$:function($){return $.supportAdjustment($)}
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled$:function($){return $.ClassType.SetEnabled.apply($.ClassType, arguments)}
};
/// TTextAlign enumeration
///  [line: 17, column: 3, file: SmartCL.Controls.Label]
var TTextAlign = [ "taLeft", "taCenter", "taRight" ];
/// PerformanceTimer = class (TObject)
///  [line: 15, column: 3, file: System.Diagnostics]
var PerformanceTimer = {
   $ClassName:"PerformanceTimer",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
   }
   /// procedure PerformanceTimer.PrepareGetNow()
   ///  [line: 56, column: 34, file: System.Diagnostics]
   ,PrepareGetNow:function() {
      
    if (window.performance && performance.now) {
      vGetNow = performance;
      vIsHighResolution = true;
    } else {
      vIsHighResolution = false;
      if (!Date.now) { Date.now = function (){ return +(new Date) } };
      vGetNow = Date;
    }
     }
   /// function PerformanceTimer.Now() : Float
   ///  [line: 49, column: 33, file: System.Diagnostics]
   ,Now$1:function() {
      var Result = 0;
      if (!vGetNow) {
         PerformanceTimer.PrepareGetNow();
      }
      Result = Number(vGetNow.now());
      return Result
   }
   ,Destroy:TObject.Destroy
};
/// TForm1 = class (TW3Form)
///  [line: 11, column: 3, file: Form1]
var TForm1 = {
   $ClassName:"TForm1",
   $Parent:TW3Form
   ,$Init:function ($) {
      TW3Form.$Init($);
      $.FUpdateProgress = $.W3Panel1 = $.W3ProgressBar1 = $.W3ProgressBar2 = $.W3ProgressBar3 = $.W3ProgressBar4 = null;
   }
   /// procedure TForm1.InitializeObject()
   ///  [line: 23, column: 18, file: Form1]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      TW3CustomForm.setCaption(Self,"W3Form");
      TW3MovableControl.SetWidth$($Check(Self," in TForm1.InitializeObject [line: 2, column: 6, file: Form1:impl]"),200);
      TW3CustomControl.SetStyleClass(Self,"TW3Form");
      TW3MovableControl.SetHeight$($Check(Self," in TForm1.InitializeObject [line: 4, column: 6, file: Form1:impl]"),64);
      TW3CustomControl.SetBorderRadius(Self,0);
      TW3MovableControl.SetColor(Self,536870911);
      TW3Component.SetName(Self,"Form1");
      $Check(Self," in TForm1.InitializeObject [line: 8, column: 1, file: Form1:impl]").W3ProgressBar1 = TW3Component.Create$18$($New(TW3ProgressBar),Self);
      TW3MovableControl.SetWidth$($Check($Check(Self," in TForm1.InitializeObject [line: 9, column: 1, file: Form1:impl]").W3ProgressBar1," in TForm1.InitializeObject [line: 9, column: 16, file: Form1:impl]"),200);
      TW3MovableControl.SetTop($Check($Check(Self," in TForm1.InitializeObject [line: 10, column: 1, file: Form1:impl]").W3ProgressBar1," in TForm1.InitializeObject [line: 10, column: 16, file: Form1:impl]"),32);
      TW3CustomControl.SetStyleClass($Check(Self," in TForm1.InitializeObject [line: 11, column: 1, file: Form1:impl]").W3ProgressBar1,"TW3ProgressBar");
      TW3MovableControl.SetLeft($Check($Check(Self," in TForm1.InitializeObject [line: 12, column: 1, file: Form1:impl]").W3ProgressBar1," in TForm1.InitializeObject [line: 12, column: 16, file: Form1:impl]"),32);
      TW3MovableControl.SetHeight$($Check($Check(Self," in TForm1.InitializeObject [line: 13, column: 1, file: Form1:impl]").W3ProgressBar1," in TForm1.InitializeObject [line: 13, column: 16, file: Form1:impl]"),24);
      TW3CustomControl.SetBorderRadius($Check(Self," in TForm1.InitializeObject [line: 14, column: 1, file: Form1:impl]").W3ProgressBar1,0);
      TW3MovableControl.SetColor($Check(Self," in TForm1.InitializeObject [line: 15, column: 1, file: Form1:impl]").W3ProgressBar1,65535);
      TW3Component.SetName($Check(Self," in TForm1.InitializeObject [line: 16, column: 1, file: Form1:impl]").W3ProgressBar1,"W3ProgressBar1");
      $Check(Self," in TForm1.InitializeObject [line: 17, column: 1, file: Form1:impl]").W3ProgressBar2 = TW3Component.Create$18$($New(TW3ProgressBar),Self);
      TW3MovableControl.SetWidth$($Check($Check(Self," in TForm1.InitializeObject [line: 18, column: 1, file: Form1:impl]").W3ProgressBar2," in TForm1.InitializeObject [line: 18, column: 16, file: Form1:impl]"),200);
      TW3MovableControl.SetTop($Check($Check(Self," in TForm1.InitializeObject [line: 19, column: 1, file: Form1:impl]").W3ProgressBar2," in TForm1.InitializeObject [line: 19, column: 16, file: Form1:impl]"),96);
      TW3CustomControl.SetStyleClass($Check(Self," in TForm1.InitializeObject [line: 20, column: 1, file: Form1:impl]").W3ProgressBar2,"TW3ProgressBar");
      TW3MovableControl.SetLeft($Check($Check(Self," in TForm1.InitializeObject [line: 21, column: 1, file: Form1:impl]").W3ProgressBar2," in TForm1.InitializeObject [line: 21, column: 16, file: Form1:impl]"),176);
      TW3MovableControl.SetHeight$($Check($Check(Self," in TForm1.InitializeObject [line: 22, column: 1, file: Form1:impl]").W3ProgressBar2," in TForm1.InitializeObject [line: 22, column: 16, file: Form1:impl]"),24);
      TW3CustomControl.SetBorderRadius($Check(Self," in TForm1.InitializeObject [line: 23, column: 1, file: Form1:impl]").W3ProgressBar2,20);
      TW3CustomControl.SetAngle($Check(Self," in TForm1.InitializeObject [line: 24, column: 1, file: Form1:impl]").W3ProgressBar2,90);
      TW3MovableControl.SetColor($Check(Self," in TForm1.InitializeObject [line: 25, column: 1, file: Form1:impl]").W3ProgressBar2,536870911);
      TW3Component.SetName($Check(Self," in TForm1.InitializeObject [line: 26, column: 1, file: Form1:impl]").W3ProgressBar2,"W3ProgressBar2");
      $Check(Self," in TForm1.InitializeObject [line: 27, column: 1, file: Form1:impl]").W3Panel1 = TW3Component.Create$18$($New(TW3Panel),Self);
      TW3MovableControl.SetWidth$($Check($Check(Self," in TForm1.InitializeObject [line: 28, column: 1, file: Form1:impl]").W3Panel1," in TForm1.InitializeObject [line: 28, column: 10, file: Form1:impl]"),208);
      TW3MovableControl.SetTop($Check($Check(Self," in TForm1.InitializeObject [line: 29, column: 1, file: Form1:impl]").W3Panel1," in TForm1.InitializeObject [line: 29, column: 10, file: Form1:impl]"),96);
      TW3CustomControl.SetStyleClass($Check(Self," in TForm1.InitializeObject [line: 30, column: 1, file: Form1:impl]").W3Panel1,"TW3Panel");
      TW3MovableControl.SetLeft($Check($Check(Self," in TForm1.InitializeObject [line: 31, column: 1, file: Form1:impl]").W3Panel1," in TForm1.InitializeObject [line: 31, column: 10, file: Form1:impl]"),32);
      TW3MovableControl.SetHeight$($Check($Check(Self," in TForm1.InitializeObject [line: 32, column: 1, file: Form1:impl]").W3Panel1," in TForm1.InitializeObject [line: 32, column: 10, file: Form1:impl]"),184);
      TW3CustomControl.SetBorderRadius($Check(Self," in TForm1.InitializeObject [line: 33, column: 1, file: Form1:impl]").W3Panel1,0);
      TW3MovableControl.SetColor($Check(Self," in TForm1.InitializeObject [line: 34, column: 1, file: Form1:impl]").W3Panel1,16711680);
      TW3Component.SetName($Check(Self," in TForm1.InitializeObject [line: 35, column: 1, file: Form1:impl]").W3Panel1,"W3Panel1");
      $Check(Self," in TForm1.InitializeObject [line: 36, column: 1, file: Form1:impl]").W3ProgressBar3 = TW3Component.Create$18$($New(TW3ProgressBar),$Check(Self," in TForm1.InitializeObject [line: 36, column: 41, file: Form1:impl]").W3Panel1);
      TW3MovableControl.SetWidth$($Check($Check(Self," in TForm1.InitializeObject [line: 37, column: 1, file: Form1:impl]").W3ProgressBar3," in TForm1.InitializeObject [line: 37, column: 16, file: Form1:impl]"),192);
      TW3MovableControl.SetTop($Check($Check(Self," in TForm1.InitializeObject [line: 38, column: 1, file: Form1:impl]").W3ProgressBar3," in TForm1.InitializeObject [line: 38, column: 16, file: Form1:impl]"),8);
      TW3CustomControl.SetStyleClass($Check(Self," in TForm1.InitializeObject [line: 39, column: 1, file: Form1:impl]").W3ProgressBar3,"TW3ProgressBar");
      TW3MovableControl.SetLeft($Check($Check(Self," in TForm1.InitializeObject [line: 40, column: 1, file: Form1:impl]").W3ProgressBar3," in TForm1.InitializeObject [line: 40, column: 16, file: Form1:impl]"),8);
      TW3MovableControl.SetHeight$($Check($Check(Self," in TForm1.InitializeObject [line: 41, column: 1, file: Form1:impl]").W3ProgressBar3," in TForm1.InitializeObject [line: 41, column: 16, file: Form1:impl]"),80);
      TW3CustomControl.SetBorderRadius($Check(Self," in TForm1.InitializeObject [line: 42, column: 1, file: Form1:impl]").W3ProgressBar3,50);
      TW3MovableControl.SetColor($Check(Self," in TForm1.InitializeObject [line: 43, column: 1, file: Form1:impl]").W3ProgressBar3,536870911);
      TW3Component.SetName($Check(Self," in TForm1.InitializeObject [line: 44, column: 1, file: Form1:impl]").W3ProgressBar3,"W3ProgressBar3");
      $Check(Self," in TForm1.InitializeObject [line: 45, column: 1, file: Form1:impl]").W3ProgressBar4 = TW3Component.Create$18$($New(TW3ProgressBar),$Check(Self," in TForm1.InitializeObject [line: 45, column: 41, file: Form1:impl]").W3Panel1);
      TW3MovableControl.SetWidth$($Check($Check(Self," in TForm1.InitializeObject [line: 46, column: 1, file: Form1:impl]").W3ProgressBar4," in TForm1.InitializeObject [line: 46, column: 16, file: Form1:impl]"),192);
      TW3MovableControl.SetTop($Check($Check(Self," in TForm1.InitializeObject [line: 47, column: 1, file: Form1:impl]").W3ProgressBar4," in TForm1.InitializeObject [line: 47, column: 16, file: Form1:impl]"),96);
      TW3CustomControl.SetStyleClass($Check(Self," in TForm1.InitializeObject [line: 48, column: 1, file: Form1:impl]").W3ProgressBar4,"TW3ProgressBar");
      TW3MovableControl.SetLeft($Check($Check(Self," in TForm1.InitializeObject [line: 49, column: 1, file: Form1:impl]").W3ProgressBar4," in TForm1.InitializeObject [line: 49, column: 16, file: Form1:impl]"),8);
      TW3MovableControl.SetHeight$($Check($Check(Self," in TForm1.InitializeObject [line: 50, column: 1, file: Form1:impl]").W3ProgressBar4," in TForm1.InitializeObject [line: 50, column: 16, file: Form1:impl]"),80);
      TW3CustomControl.SetBorderRadius($Check(Self," in TForm1.InitializeObject [line: 51, column: 1, file: Form1:impl]").W3ProgressBar4,0);
      TW3MovableControl.SetAlpha($Check(Self," in TForm1.InitializeObject [line: 52, column: 1, file: Form1:impl]").W3ProgressBar4,128);
      TW3MovableControl.SetColor($Check(Self," in TForm1.InitializeObject [line: 53, column: 1, file: Form1:impl]").W3ProgressBar4,536870911);
      TW3MovableControl.SetUseAlpha($Check(Self," in TForm1.InitializeObject [line: 54, column: 1, file: Form1:impl]").W3ProgressBar4,true);
      TW3Component.SetName($Check(Self," in TForm1.InitializeObject [line: 55, column: 1, file: Form1:impl]").W3ProgressBar4,"W3ProgressBar4");
      TW3ProgressBar.SetTotal($Check(Self," in TForm1.InitializeObject [line: 27, column: 3, file: Form1]").W3ProgressBar1,100);
      TW3ProgressBar.SetPos($Check(Self," in TForm1.InitializeObject [line: 28, column: 3, file: Form1]").W3ProgressBar1,25);
      TW3ProgressBar.SetTotal($Check(Self," in TForm1.InitializeObject [line: 29, column: 3, file: Form1]").W3ProgressBar2,1000);
      TW3ProgressBar.SetPos($Check(Self," in TForm1.InitializeObject [line: 30, column: 3, file: Form1]").W3ProgressBar2,330);
      TW3ProgressBar.SetTotal($Check(Self," in TForm1.InitializeObject [line: 31, column: 3, file: Form1]").W3ProgressBar3,10);
      TW3ProgressBar.SetPos($Check(Self," in TForm1.InitializeObject [line: 32, column: 3, file: Form1]").W3ProgressBar3,7);
      TW3ProgressBar.SetTotal($Check(Self," in TForm1.InitializeObject [line: 33, column: 3, file: Form1]").W3ProgressBar4,100);
      TW3ProgressBar.SetPos($Check(Self," in TForm1.InitializeObject [line: 34, column: 3, file: Form1]").W3ProgressBar4,75);
      TW3MovableControl.SetTransparent($Check(Self," in TForm1.InitializeObject [line: 35, column: 3, file: Form1]").W3ProgressBar4,true);
      $Check(Self," in TForm1.InitializeObject [line: 36, column: 3, file: Form1]").FUpdateProgress = TW3EventRepeater.Create$49($New(TW3EventRepeater),function (Sender$4) {
         var Result = false;
         var bars = [null,null,null,null];
         var iBar = 0;
         var bar = null;
         var newVal = 0;
         bars = [$Check(Self," in  [line: 39, column: 20, file: Form1]").W3ProgressBar1, $Check(Self," in  [line: 39, column: 36, file: Form1]").W3ProgressBar2, $Check(Self," in  [line: 39, column: 52, file: Form1]").W3ProgressBar3, $Check(Self," in  [line: 39, column: 68, file: Form1]").W3ProgressBar4];
         for(iBar = 0;iBar<=3;iBar++) {
            bar = bars[$Idx(iBar,0,3," in  [line: 41, column: 29, file: Form1]")];
            if (!$Check(bar," in  [line: 42, column: 20, file: Form1]").FActive) {
               continue;
            }
            newVal = $Check(bar," in  [line: 43, column: 27, file: Form1]").FValue+1;
            if (newVal>$Check(bar," in  [line: 44, column: 25, file: Form1]").FTotal$1) {
               newVal = 0;
            }
            TW3ProgressBar.SetPos(bar,newVal);
            Result = false;
         }
         return Result
      },100);
      TW3CustomControl._setMouseClick($Check(Self," in TForm1.InitializeObject [line: 50, column: 3, file: Form1]").W3ProgressBar1,function (_implicit_Sender) {
         TW3ProgressBar.SetActive($Check(Self," in  [line: 50, column: 36, file: Form1]").W3ProgressBar1,!$Check($Check(Self," in  [line: 50, column: 65, file: Form1]").W3ProgressBar1," in  [line: 50, column: 80, file: Form1]").FActive);
      });
      TW3CustomControl._setMouseClick($Check(Self," in TForm1.InitializeObject [line: 51, column: 3, file: Form1]").W3ProgressBar2,function (_implicit_Sender$1) {
         TW3ProgressBar.SetActive($Check(Self," in  [line: 51, column: 36, file: Form1]").W3ProgressBar2,!$Check($Check(Self," in  [line: 51, column: 65, file: Form1]").W3ProgressBar2," in  [line: 51, column: 80, file: Form1]").FActive);
      });
      TW3CustomControl._setMouseClick($Check(Self," in TForm1.InitializeObject [line: 52, column: 3, file: Form1]").W3ProgressBar3,function (_implicit_Sender$2) {
         TW3ProgressBar.SetActive($Check(Self," in  [line: 52, column: 36, file: Form1]").W3ProgressBar3,!$Check($Check(Self," in  [line: 52, column: 65, file: Form1]").W3ProgressBar3," in  [line: 52, column: 80, file: Form1]").FActive);
      });
      TW3CustomControl._setMouseClick($Check(Self," in TForm1.InitializeObject [line: 53, column: 3, file: Form1]").W3ProgressBar4,function (_implicit_Sender$3) {
         TW3ProgressBar.SetActive($Check(Self," in  [line: 53, column: 36, file: Form1]").W3ProgressBar4,!$Check($Check(Self," in  [line: 53, column: 65, file: Form1]").W3ProgressBar4," in  [line: 53, column: 80, file: Form1]").FActive);
      });
   }
   ,Destroy:TW3CustomForm.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomForm.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomForm.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3Panel = class (TW3CustomControl)
///  [line: 17, column: 3, file: SmartCL.Controls.Panel]
var TW3Panel = {
   $ClassName:"TW3Panel",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3CustomControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3PaintBox = class (TW3GraphicControl)
///  [line: 17, column: 3, file: SmartCL.Controls.PaintBox]
var TW3PaintBox = {
   $ClassName:"TW3PaintBox",
   $Parent:TW3GraphicControl
   ,$Init:function ($) {
      TW3GraphicControl.$Init($);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3GraphicControl.FinalizeObject
   ,InitializeObject:TW3GraphicControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3GraphicControl.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3GraphicControl.Resize
   ,SetHeight:TW3GraphicControl.SetHeight
   ,SetWidth:TW3GraphicControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3GraphicControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
   ,Paint:TW3GraphicControl.Paint
};
/// TW3CustomRepeater = class (TObject)
///  [line: 32, column: 3, file: SmartCL.Time]
var TW3CustomRepeater = {
   $ClassName:"TW3CustomRepeater",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FDelay$1 = 0;
      $.FHandle$4 = undefined;
   }
   /// procedure TW3CustomRepeater.AllocTimer()
   ///  [line: 196, column: 29, file: SmartCL.Time]
   ,AllocTimer:function(Self) {
      if ($Check(Self," in TW3CustomRepeater.AllocTimer [line: 199, column: 6, file: SmartCL.Time]").FHandle$4!=0) {
         TW3CustomRepeater.ReleaseTimer(Self);
      }
      $Check(Self," in TW3CustomRepeater.AllocTimer [line: 202, column: 3, file: SmartCL.Time]").FHandle$4 = setInterval($Event0(Self,TW3CustomRepeater.CBExecute$),($Check(Self," in TW3CustomRepeater.AllocTimer [line: 202, column: 40, file: SmartCL.Time]").FDelay$1));
   }
   /// destructor TW3CustomRepeater.Destroy()
   ///  [line: 178, column: 30, file: SmartCL.Time]
   ,Destroy:function(Self) {
      if ($Check(Self," in TW3CustomRepeater.Destroy [line: 180, column: 6, file: SmartCL.Time]").FHandle$4!=0) {
         TW3CustomRepeater.ReleaseTimer(Self);
      }
      TObject.Destroy(Self);
   }
   /// procedure TW3CustomRepeater.ReleaseTimer()
   ///  [line: 205, column: 29, file: SmartCL.Time]
   ,ReleaseTimer:function(Self) {
      if ($Check(Self," in TW3CustomRepeater.ReleaseTimer [line: 208, column: 6, file: SmartCL.Time]").FHandle$4!=0) {
         clearInterval($Check(Self," in TW3CustomRepeater.ReleaseTimer [line: 209, column: 22, file: SmartCL.Time]").FHandle$4);
         $Check(Self," in TW3CustomRepeater.ReleaseTimer [line: 210, column: 5, file: SmartCL.Time]").FHandle$4 = 0;
      }
   }
   /// procedure TW3CustomRepeater.setDelay(aValue: Integer)
   ///  [line: 186, column: 29, file: SmartCL.Time]
   ,setDelay:function(Self, aValue$62) {
      $Check(Self," in TW3CustomRepeater.setDelay [line: 189, column: 3, file: SmartCL.Time]").FDelay$1 = Math.max(aValue$62,1);
      if ($Check(Self," in TW3CustomRepeater.setDelay [line: 192, column: 6, file: SmartCL.Time]").FHandle$4!=0) {
         TW3CustomRepeater.AllocTimer(Self);
      }
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
   ,CBExecute$:function($){return $.ClassType.CBExecute($)}
};
/// TW3EventRepeater = class (TW3CustomRepeater)
///  [line: 49, column: 3, file: SmartCL.Time]
var TW3EventRepeater = {
   $ClassName:"TW3EventRepeater",
   $Parent:TW3CustomRepeater
   ,$Init:function ($) {
      TW3CustomRepeater.$Init($);
      $.FCallBack = null;
   }
   /// procedure TW3EventRepeater.CBExecute()
   ///  [line: 168, column: 28, file: SmartCL.Time]
   ,CBExecute:function(Self) {
      if ($CheckFunc($Check(Self," in TW3EventRepeater.CBExecute [line: 170, column: 6, file: SmartCL.Time]").FCallBack," in TW3EventRepeater.CBExecute [line: 170, column: 15, file: SmartCL.Time]")(Self)) {
         TW3CustomRepeater.ReleaseTimer(Self);
      }
   }
   /// constructor TW3EventRepeater.Create(aCallBack: TW3RepeaterEvent; aDelay: Integer)
   ///  [line: 145, column: 30, file: SmartCL.Time]
   ,Create$49:function(Self, aCallBack, aDelay) {
      TObject.Create(Self);
      $Check(Self," in TW3EventRepeater.Create [line: 149, column: 3, file: SmartCL.Time]").FCallBack = aCallBack;
      TW3CustomRepeater.setDelay(Self,aDelay);
      if ((aCallBack!==null)&&(aDelay>0)) {
         TW3CustomRepeater.AllocTimer(Self);
      }
      return Self
   }
   ,Destroy:TW3CustomRepeater.Destroy
   ,CBExecute$:function($){return $.ClassType.CBExecute($)}
};
/// TControlAnimationList = class (TObject)
///  [line: 75, column: 3, file: SmartCL.Animation]
var TControlAnimationList = {
   $ClassName:"TControlAnimationList",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FAnimationList = $.FControl = null;
   }
   /// procedure TControlAnimationList.Animate(time_ms: Integer; animateProc: TAnimationStep; config: TAnimationConfig = nil)
   ///  [line: 372, column: 33, file: SmartCL.Animation]
   ,Animate:function(Self, time_ms, animateProc, config) {
      if ((config!==null)&&($Check(config," in TControlAnimationList.Animate [line: 375, column: 35, file: SmartCL.Animation]").FStart==0)) {
         TObjectList.Clear$2($Check(Self," in TControlAnimationList.Animate [line: 376, column: 5, file: SmartCL.Animation]").FAnimationList);
      }
      TObjectList.Add$1($Check(Self," in TControlAnimationList.Animate [line: 377, column: 3, file: SmartCL.Animation]").FAnimationList,TAnimation.Create$57($New(TAnimation),$Check(Self," in TControlAnimationList.Animate [line: 377, column: 40, file: SmartCL.Animation]").FControl,time_ms,config,animateProc));
      if (TObjectList.GetCount$1($Check(Self," in TControlAnimationList.Animate [line: 378, column: 6, file: SmartCL.Animation]").FAnimationList)==1) {
         TAnimation.Start$2($As(TObjectList.GetItem$5($Check(Self," in TControlAnimationList.Animate [line: 379, column: 16, file: SmartCL.Animation]").FAnimationList,0),TAnimation),$Event1(Self,TControlAnimationList.MoveToNext));
      }
   }
   /// constructor TControlAnimationList.Create(ctrl: TW3CustomControl)
   ///  [line: 365, column: 35, file: SmartCL.Animation]
   ,Create$55:function(Self, ctrl) {
      TObject.Create(Self);
      $Check(Self," in TControlAnimationList.Create [line: 368, column: 3, file: SmartCL.Animation]").FAnimationList = TObjectList.Create$38($New(TObjectList));
      $Check(Self," in TControlAnimationList.Create [line: 369, column: 3, file: SmartCL.Animation]").FControl = ctrl;
      return Self
   }
   /// function TControlAnimationList.IsActive() : Boolean
   ///  [line: 387, column: 32, file: SmartCL.Animation]
   ,IsActive:function(Self) {
      return (TObjectList.GetCount$1($Check(Self," in TControlAnimationList.IsActive [line: 389, column: 14, file: SmartCL.Animation]").FAnimationList)>0)&&(!$Check($As(TObjectList.GetItem$5($Check(Self," in TControlAnimationList.IsActive [line: 389, column: 60, file: SmartCL.Animation]").FAnimationList,0),TAnimation)," in TControlAnimationList.IsActive [line: 389, column: 79, file: SmartCL.Animation]").FCompleted);
   }
   /// procedure TControlAnimationList.Move(time_ms: Integer; X: Integer; Y: Integer; config: TAnimationConfig = nil)
   ///  [line: 392, column: 33, file: SmartCL.Animation]
   ,Move$3:function(Self, time_ms$1, X$2, Y$2, config$1) {
      TControlAnimationList.PrepareAnimation(Self,TMoveAnimation.Create$61($New(TMoveAnimation),$Check(Self," in TControlAnimationList.Move [line: 395, column: 42, file: SmartCL.Animation]").FControl,time_ms$1,config$1,Create$13(X$2,Y$2)),config$1);
   }
   /// procedure TControlAnimationList.MoveToNext(animation: TAnimation)
   ///  [line: 413, column: 33, file: SmartCL.Animation]
   ,MoveToNext:function(Self, animation) {
      var idx$1 = 0;
      var onCompleted = null;
      idx$1 = TObjectList.IndexOf$1($Check(Self," in TControlAnimationList.MoveToNext [line: 415, column: 14, file: SmartCL.Animation]").FAnimationList,animation);
      TObjectList.Remove$1($Check(Self," in TControlAnimationList.MoveToNext [line: 416, column: 3, file: SmartCL.Animation]").FAnimationList,idx$1);
      if (($Check(animation," in TControlAnimationList.MoveToNext [line: 417, column: 25, file: SmartCL.Animation]").FConfig!==null)&&($Check($Check(animation," in TControlAnimationList.MoveToNext [line: 417, column: 56, file: SmartCL.Animation]").FConfig," in TControlAnimationList.MoveToNext [line: 417, column: 63, file: SmartCL.Animation]").FNotifyAtEnd!==null)) {
         onCompleted = $Check($Check(animation," in TControlAnimationList.MoveToNext [line: 418, column: 34, file: SmartCL.Animation]").FConfig," in TControlAnimationList.MoveToNext [line: 418, column: 41, file: SmartCL.Animation]").FNotifyAtEnd;
         $CheckFunc(onCompleted," in TControlAnimationList.MoveToNext [line: 419, column: 16, file: SmartCL.Animation]")();
      }
      TObject.Free(animation);
      if ((TObjectList.GetCount$1($Check(Self," in TControlAnimationList.MoveToNext [line: 422, column: 7, file: SmartCL.Animation]").FAnimationList)>0)&&(!TAnimation.IsActive$1($As(TObjectList.GetItem$5($Check(Self," in TControlAnimationList.MoveToNext [line: 422, column: 53, file: SmartCL.Animation]").FAnimationList,0),TAnimation)))) {
         TAnimation.Start$2($As(TObjectList.GetItem$5($Check(Self," in TControlAnimationList.MoveToNext [line: 423, column: 16, file: SmartCL.Animation]").FAnimationList,0),TAnimation),$Event1(Self,TControlAnimationList.MoveToNext));
      }
   }
   /// procedure TControlAnimationList.PrepareAnimation(animation: TAnimation; config: TAnimationConfig)
   ///  [line: 440, column: 33, file: SmartCL.Animation]
   ,PrepareAnimation:function(Self, animation$1, config$2) {
      var idx$2 = 0;
      idx$2 = TObjectList.Add$1($Check(Self," in TControlAnimationList.PrepareAnimation [line: 443, column: 14, file: SmartCL.Animation]").FAnimationList,animation$1);
      if ((!(config$2!==null))||($Check(config$2," in TControlAnimationList.PrepareAnimation [line: 444, column: 40, file: SmartCL.Animation]").FStart==0)) {
         TAnimation.Start$2($As(TObjectList.GetItem$5($Check(Self," in TControlAnimationList.PrepareAnimation [line: 445, column: 16, file: SmartCL.Animation]").FAnimationList,idx$2),TAnimation),$Event1(Self,TControlAnimationList.MoveToNext));
      }
   }
   ,Destroy:TObject.Destroy
};
/// TAnimationManager = class (TObject)
///  [line: 96, column: 3, file: SmartCL.Animation]
var TAnimationManager = {
   $ClassName:"TAnimationManager",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
   }
   /// function TAnimationManager.HasAnimationList(ctrl: TW3CustomControl) : Boolean
   ///  [line: 490, column: 28, file: SmartCL.Animation]
   ,HasAnimationList:function(Self, ctrl$1) {
      var Result = false;
      
    Result = (ctrl$1).hasOwnProperty('AM_AL');
  return Result
   }
   /// function TAnimationManager.GetAnimationList(ctrl: TW3CustomControl) : TControlAnimationList
   ///  [line: 477, column: 28, file: SmartCL.Animation]
   ,GetAnimationList:function(Self, ctrl$2) {
      var Result = null;
      if (TAnimationManager.HasAnimationList(Self,ctrl$2)) {
         
    Result = (ctrl$2).AM_AL;
        } else {
         Result = TControlAnimationList.Create$55($New(TControlAnimationList),ctrl$2);
         
      (ctrl$2).AM_AL = Result;
          }
      return Result
   }
   /// function TAnimationManager.Config() : TAnimationConfig
   ///  [line: 472, column: 34, file: SmartCL.Animation]
   ,Config:function(Self) {
      return TAnimationConfig.Create$56($New(TAnimationConfig));
   }
   ,Destroy:TObject.Destroy
};
/// TAnimationConfig = class (TObject)
///  [line: 32, column: 3, file: SmartCL.Animation]
var TAnimationConfig = {
   $ClassName:"TAnimationConfig",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FLoop = false;
      $.FNotifyAtEnd = null;
      $.FStart = 0;
   }
   /// constructor TAnimationConfig.Create()
   ///  [line: 157, column: 30, file: SmartCL.Animation]
   ,Create$56:function(Self) {
      TObject.Create(Self);
      $Check(Self," in TAnimationConfig.Create [line: 160, column: 3, file: SmartCL.Animation]").FStart = 0;
      $Check(Self," in TAnimationConfig.Create [line: 161, column: 3, file: SmartCL.Animation]").FNotifyAtEnd = null;
      return Self
   }
   /// function TAnimationConfig.SetOnCompleted(AProc: TAnimationNotify) : TAnimationConfig
   ///  [line: 170, column: 27, file: SmartCL.Animation]
   ,SetOnCompleted:function(Self, AProc) {
      var Result = null;
      $Check(Self," in TAnimationConfig.SetOnCompleted [line: 172, column: 3, file: SmartCL.Animation]").FNotifyAtEnd = AProc;
      Result = Self;
      return Result
   }
   ,Destroy:TObject.Destroy
};
/// TAnimation = class (TObject)
///  [line: 47, column: 3, file: SmartCL.Animation]
var TAnimation = {
   $ClassName:"TAnimation",
   $Parent:TObject
   ,$Init:function ($) {
      TObject.$Init($);
      $.FAnimationStep = null;
      $.FCompleted = false;
      $.FConfig = $.FControl$1 = $.FNotifyAtEnd$1 = $.FRepeater$1 = null;
      $.FTimeStart = 0;
      $.FTime_ms = 0;
   }
   /// function TAnimation.AnimationTimer(Sender: TObject) : Boolean
   ///  [line: 195, column: 21, file: SmartCL.Animation]
   ,AnimationTimer:function(Self, Sender$5) {
      var Result = false;
      var progress = 0;
      Result = false;
      progress = ((Now()-$Check(Self," in TAnimation.AnimationTimer [line: 198, column: 27, file: SmartCL.Animation]").FTimeStart)*86400000)/$Check(Self," in TAnimation.AnimationTimer [line: 198, column: 60, file: SmartCL.Animation]").FTime_ms;
      if (progress>1) {
         progress = 1;
      }
      $CheckFunc($Check(Self," in TAnimation.AnimationTimer [line: 200, column: 3, file: SmartCL.Animation]").FAnimationStep," in TAnimation.AnimationTimer [line: 200, column: 17, file: SmartCL.Animation]")(progress);
      if (progress==1) {
         if (($Check(Self," in TAnimation.AnimationTimer [line: 202, column: 17, file: SmartCL.Animation]").FConfig!==null)&&$Check($Check(Self," in TAnimation.AnimationTimer [line: 202, column: 29, file: SmartCL.Animation]").FConfig," in TAnimation.AnimationTimer [line: 202, column: 36, file: SmartCL.Animation]").FLoop) {
            $Check(Self," in TAnimation.AnimationTimer [line: 203, column: 7, file: SmartCL.Animation]").FTimeStart = Now()-2.31481481481481E-7;
         } else {
            $Check(Self," in TAnimation.AnimationTimer [line: 205, column: 7, file: SmartCL.Animation]").FCompleted = true;
            $CheckFunc($Check(Self," in TAnimation.AnimationTimer [line: 206, column: 7, file: SmartCL.Animation]").FNotifyAtEnd$1," in TAnimation.AnimationTimer [line: 206, column: 19, file: SmartCL.Animation]")(Self);
            Result = true;
         }
      }
      return Result
   }
   /// constructor TAnimation.Create(control: TW3CustomControl; time_ms: Integer; config: TAnimationConfig; animationStep: TAnimationStep)
   ///  [line: 184, column: 24, file: SmartCL.Animation]
   ,Create$57:function(Self, control$1, time_ms$2, config$3, animationStep) {
      TObject.Create(Self);
      $Check(Self," in TAnimation.Create [line: 188, column: 3, file: SmartCL.Animation]").FAnimationStep = animationStep;
      $Check(Self," in TAnimation.Create [line: 189, column: 3, file: SmartCL.Animation]").FControl$1 = control$1;
      $Check(Self," in TAnimation.Create [line: 190, column: 3, file: SmartCL.Animation]").FTime_ms = time_ms$2;
      $Check(Self," in TAnimation.Create [line: 191, column: 3, file: SmartCL.Animation]").FConfig = config$3;
      $Check(Self," in TAnimation.Create [line: 192, column: 3, file: SmartCL.Animation]").FCompleted = false;
      return Self
   }
   /// destructor TAnimation.Destroy()
   ///  [line: 211, column: 23, file: SmartCL.Animation]
   ,Destroy:function(Self) {
      if ($Check(Self," in TAnimation.Destroy [line: 213, column: 15, file: SmartCL.Animation]").FRepeater$1) {
         TObject.Free($Check(Self," in TAnimation.Destroy [line: 213, column: 31, file: SmartCL.Animation]").FRepeater$1);
      }
      $Check(Self," in TAnimation.Destroy [line: 214, column: 3, file: SmartCL.Animation]").FRepeater$1 = null;
      TObject.Destroy(Self);
   }
   /// procedure TAnimation.Initialize(var animationStep: TAnimationStep)
   ///  [line: 218, column: 22, file: SmartCL.Animation]
   ,Initialize:function(Self, animationStep$1) {
      /* null */
   }
   /// function TAnimation.Interpolate(vStart: Integer; vStop: Integer; progress: Float) : Integer
   ///  [line: 223, column: 27, file: SmartCL.Animation]
   ,Interpolate$1:function(Self, vStart, vStop, progress$1) {
      return Math.round(vStart+((vStop-vStart)*progress$1));
   }
   /// function TAnimation.IsActive() : Boolean
   ///  [line: 233, column: 21, file: SmartCL.Animation]
   ,IsActive$1:function(Self) {
      return $Check(Self," in TAnimation.IsActive [line: 235, column: 22, file: SmartCL.Animation]").FRepeater$1!==null;
   }
   /// procedure TAnimation.Start(notifyAtEnd: TAnimationNotifyAni)
   ///  [line: 238, column: 22, file: SmartCL.Animation]
   ,Start$2:function(Self, notifyAtEnd) {
      var animationStep$2 = {v:null};
      animationStep$2.v = $Check(Self," in TAnimation.Start [line: 240, column: 25, file: SmartCL.Animation]").FAnimationStep;
      TAnimation.Initialize$($Check(Self," in TAnimation.Start [line: 241, column: 3, file: SmartCL.Animation]"),animationStep$2);
      $Check(Self," in TAnimation.Start [line: 242, column: 3, file: SmartCL.Animation]").FAnimationStep = animationStep$2.v;
      $Check(Self," in TAnimation.Start [line: 243, column: 3, file: SmartCL.Animation]").FTimeStart = Now();
      $Check(Self," in TAnimation.Start [line: 244, column: 3, file: SmartCL.Animation]").FNotifyAtEnd$1 = notifyAtEnd;
      $Check(Self," in TAnimation.Start [line: 245, column: 3, file: SmartCL.Animation]").FRepeater$1 = TW3EventRepeater.Create$49($New(TW3EventRepeater),$Event1(Self,TAnimation.AnimationTimer),20);
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
   ,Initialize$:function($){return $.ClassType.Initialize.apply($.ClassType, arguments)}
};
/// AnimationStart enumeration
///  [line: 25, column: 3, file: SmartCL.Animation]
var AnimationStart = [ "Immediate", "AfterPrevious" ];
function Animation() {
   var Result = null;
   if (!GAnimationManager) {
      GAnimationManager = TObject.Create($New(TAnimationManager));
   }
   Result = GAnimationManager;
   return Result
};
/// TMoveAnimation = class (TAnimation)
///  [line: 118, column: 3, file: SmartCL.Animation]
var TMoveAnimation = {
   $ClassName:"TMoveAnimation",
   $Parent:TAnimation
   ,$Init:function ($) {
      TAnimation.$Init($);
      $.FCachedIndex = 0;
      $.FRelativeMove = false;
      $.FToPoint = {X$1:0,Y$1:0};
   }
   /// constructor TMoveAnimation.Create(control: TW3CustomControl; time_ms: Integer; config: TAnimationConfig; path: TAnimationPath)
   ///  [line: 280, column: 28, file: SmartCL.Animation]
   ,Create$63:function(Self, control$2, time_ms$3, config$4, path) {
      var i$3 = 0;
      var lengths = [];
      var totalLen = 0;
      $Check(Self," in TMoveAnimation.Create [line: 286, column: 3, file: SmartCL.Animation]").FRelativeMove = false;
      $Assert(!Odd(path.length),"Path must contain even number of elements"," in TMoveAnimation.Create [line: 287, column: 3, file: SmartCL.Animation]");
      $Assert(path.length>=4,"Path must contain at least four elements"," in TMoveAnimation.Create [line: 288, column: 3, file: SmartCL.Animation]");
      totalLen = 0;
      lengths.push(totalLen);
      var $temp26;
      for(i$3 = 0,$temp26 = path.length-4;i$3<=$temp26;i$3+=2) {
         totalLen+=Math.sqrt(Math.pow($DIdxR(path,i$3+2," in TMoveAnimation.Create [line: 292, column: 49, file: SmartCL.Animation]")-$DIdxR(path,i$3," in TMoveAnimation.Create [line: 292, column: 58, file: SmartCL.Animation]"),2)+Math.pow($DIdxR(path,i$3+3," in TMoveAnimation.Create [line: 292, column: 78, file: SmartCL.Animation]")-$DIdxR(path,i$3+1," in TMoveAnimation.Create [line: 292, column: 91, file: SmartCL.Animation]"),2));
         lengths.push(totalLen);
      }
      TAnimation.Create$57(Self,control$2,time_ms$3,config$4,function (progress$2) {
         var x$17 = {};
         x$17.v = 0;
         var y$6 = {};
         y$6.v = 0;
         TMoveAnimation.FindPathCoords(Self,progress$2,path,lengths,totalLen,x$17,y$6);
         TW3TagObj.BeginUpdate(control$2);
         TW3MovableControl.SetLeft($Check(control$2," in  [line: 302, column: 15, file: SmartCL.Animation]"),x$17.v);
         TW3MovableControl.SetTop($Check(control$2," in  [line: 303, column: 15, file: SmartCL.Animation]"),y$6.v);
         TW3TagObj.EndUpdate($Check(control$2," in  [line: 304, column: 15, file: SmartCL.Animation]"));
      });
      return Self
   }
   /// constructor TMoveAnimation.Create(control: TW3CustomControl; time_ms: Integer; config: TAnimationConfig; fromPoint: TPoint; toPoint: TPoint)
   ///  [line: 258, column: 28, file: SmartCL.Animation]
   ,Create$62:function(Self, control$3, time_ms$4, config$5, fromPoint, toPoint) {
      TAnimation.Create$57(Self,control$3,time_ms$4,config$5,function (progress$3) {
         TW3TagObj.BeginUpdate(control$3);
         TW3MovableControl.SetLeft($Check(control$3," in  [line: 265, column: 15, file: SmartCL.Animation]"),TAnimation.Interpolate$1($Check(Self," in  [line: 265, column: 23, file: SmartCL.Animation]").ClassType,fromPoint.X$1,toPoint.X$1,progress$3));
         TW3MovableControl.SetTop($Check(control$3," in  [line: 266, column: 15, file: SmartCL.Animation]"),TAnimation.Interpolate$1($Check(Self," in  [line: 266, column: 22, file: SmartCL.Animation]").ClassType,fromPoint.Y$1,toPoint.Y$1,progress$3));
         TW3TagObj.EndUpdate($Check(control$3," in  [line: 267, column: 15, file: SmartCL.Animation]"));
      });
      $Check(Self," in TMoveAnimation.Create [line: 269, column: 3, file: SmartCL.Animation]").FRelativeMove = false;
      return Self
   }
   /// constructor TMoveAnimation.Create(control: TW3CustomControl; time_ms: Integer; config: TAnimationConfig; toPoint: TPoint)
   ///  [line: 272, column: 28, file: SmartCL.Animation]
   ,Create$61:function(Self, control$4, time_ms$5, config$6, toPoint$1) {
      TAnimation.Create$57(Self,control$4,time_ms$5,config$6,null);
      $Check(Self," in TMoveAnimation.Create [line: 276, column: 3, file: SmartCL.Animation]").FRelativeMove = true;
      Copy$TPoint(toPoint$1,$Check(Self," in TMoveAnimation.Create [line: 277, column: 3, file: SmartCL.Animation]").FToPoint);
      return Self
   }
   /// procedure TMoveAnimation.FindPathCoords(progress: Float; path: TAnimationPath; lengths: array of Float; totalLen: Float; var x: Integer; var y: Integer)
   ///  [line: 308, column: 26, file: SmartCL.Animation]
   ,FindPathCoords:function(Self, progress$4, path$1, lengths$1, totalLen$1, x$18, y$7) {
      var linePart = 0;
      progress$4*=totalLen$1;
      if (progress$4>=$DIdxR(lengths$1,$Check(Self," in TMoveAnimation.FindPathCoords [line: 312, column: 26, file: SmartCL.Animation]").FCachedIndex+1," in TMoveAnimation.FindPathCoords [line: 312, column: 42, file: SmartCL.Animation]")) {
         while (($Check(Self," in TMoveAnimation.FindPathCoords [line: 313, column: 12, file: SmartCL.Animation]").FCachedIndex<(lengths$1.length-2))&&(progress$4>=$DIdxR(lengths$1,$Check(Self," in TMoveAnimation.FindPathCoords [line: 314, column: 32, file: SmartCL.Animation]").FCachedIndex+1," in TMoveAnimation.FindPathCoords [line: 314, column: 47, file: SmartCL.Animation]"))) {
            ++$Check(Self," in TMoveAnimation.FindPathCoords [line: 315, column: 12, file: SmartCL.Animation]").FCachedIndex         }
      }
      linePart = (progress$4-$DIdxR(lengths$1,$Check(Self," in TMoveAnimation.FindPathCoords [line: 316, column: 39, file: SmartCL.Animation]").FCachedIndex," in TMoveAnimation.FindPathCoords [line: 316, column: 52, file: SmartCL.Animation]"))/($DIdxR(lengths$1,$Check(Self," in TMoveAnimation.FindPathCoords [line: 316, column: 65, file: SmartCL.Animation]").FCachedIndex+1," in TMoveAnimation.FindPathCoords [line: 316, column: 81, file: SmartCL.Animation]")-$DIdxR(lengths$1,$Check(Self," in TMoveAnimation.FindPathCoords [line: 316, column: 91, file: SmartCL.Animation]").FCachedIndex," in TMoveAnimation.FindPathCoords [line: 316, column: 104, file: SmartCL.Animation]"));
      if (linePart>1) {
         linePart = 1;
      }
      x$18.v = TAnimation.Interpolate$1($Check(Self," in TMoveAnimation.FindPathCoords [line: 318, column: 8, file: SmartCL.Animation]").ClassType,$DIdxR(path$1,$Check(Self," in TMoveAnimation.FindPathCoords [line: 318, column: 25, file: SmartCL.Animation]").FCachedIndex*2," in TMoveAnimation.FindPathCoords [line: 318, column: 42, file: SmartCL.Animation]"),$DIdxR(path$1,($Check(Self," in TMoveAnimation.FindPathCoords [line: 318, column: 53, file: SmartCL.Animation]").FCachedIndex*2)+2," in TMoveAnimation.FindPathCoords [line: 318, column: 74, file: SmartCL.Animation]"),linePart);
      y$7.v = TAnimation.Interpolate$1($Check(Self," in TMoveAnimation.FindPathCoords [line: 319, column: 8, file: SmartCL.Animation]").ClassType,$DIdxR(path$1,($Check(Self," in TMoveAnimation.FindPathCoords [line: 319, column: 25, file: SmartCL.Animation]").FCachedIndex*2)+1," in TMoveAnimation.FindPathCoords [line: 319, column: 46, file: SmartCL.Animation]"),$DIdxR(path$1,($Check(Self," in TMoveAnimation.FindPathCoords [line: 319, column: 53, file: SmartCL.Animation]").FCachedIndex*2)+3," in TMoveAnimation.FindPathCoords [line: 319, column: 74, file: SmartCL.Animation]"),linePart);
   }
   /// procedure TMoveAnimation.Initialize(var animationStep: TAnimationStep)
   ///  [line: 322, column: 26, file: SmartCL.Animation]
   ,Initialize:function(Self, animationStep$3) {
      var fromPoint$1 = {X$1:0,Y$1:0};
      if ($Check(Self," in TMoveAnimation.Initialize [line: 326, column: 6, file: SmartCL.Animation]").FRelativeMove) {
         fromPoint$1 = Create$13(TW3MovableControl.GetLeft($Check($Check(Self," in TMoveAnimation.Initialize [line: 327, column: 32, file: SmartCL.Animation]").FControl$1," in TMoveAnimation.Initialize [line: 327, column: 40, file: SmartCL.Animation]")),TW3MovableControl.GetTop($Check($Check(Self," in TMoveAnimation.Initialize [line: 327, column: 46, file: SmartCL.Animation]").FControl$1," in TMoveAnimation.Initialize [line: 327, column: 54, file: SmartCL.Animation]")));
         animationStep$3.v = function (progress$5) {
            TW3TagObj.BeginUpdate($Check(Self," in  [line: 331, column: 16, file: SmartCL.Animation]").FControl$1);
            TW3MovableControl.SetLeft($Check($Check(Self," in  [line: 332, column: 16, file: SmartCL.Animation]").FControl$1," in  [line: 332, column: 17, file: SmartCL.Animation]"),TAnimation.Interpolate$1($Check(Self," in  [line: 332, column: 25, file: SmartCL.Animation]").ClassType,fromPoint$1.X$1,$Check(Self," in  [line: 332, column: 50, file: SmartCL.Animation]").FToPoint.X$1,progress$5));
            TW3MovableControl.SetTop($Check($Check(Self," in  [line: 333, column: 16, file: SmartCL.Animation]").FControl$1," in  [line: 333, column: 17, file: SmartCL.Animation]"),TAnimation.Interpolate$1($Check(Self," in  [line: 333, column: 24, file: SmartCL.Animation]").ClassType,fromPoint$1.Y$1,$Check(Self," in  [line: 333, column: 49, file: SmartCL.Animation]").FToPoint.Y$1,progress$5));
            TW3TagObj.EndUpdate($Check($Check(Self," in  [line: 334, column: 16, file: SmartCL.Animation]").FControl$1," in  [line: 334, column: 17, file: SmartCL.Animation]"));
         };
      }
   }
   ,Destroy:TAnimation.Destroy
   ,Initialize$:function($){return $.ClassType.Initialize.apply($.ClassType, arguments)}
};
/// TW3ProgressMeter = class (TW3CustomControl)
///  [line: 17, column: 3, file: SmartCL.Controls.ProgressBar]
var TW3ProgressMeter = {
   $ClassName:"TW3ProgressMeter",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3CustomControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3ProgressBar = class (TW3CustomControl)
///  [line: 20, column: 3, file: SmartCL.Controls.ProgressBar]
var TW3ProgressBar = {
   $ClassName:"TW3ProgressBar",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FActive = true;
      $.FMeter = null;
      $.FTotal$1 = $.FValue = 0;
   }
   /// procedure TW3ProgressBar.FinalizeObject()
   ///  [line: 60, column: 26, file: SmartCL.Controls.ProgressBar]
   ,FinalizeObject:function(Self) {
      TObject.Free($Check(Self," in TW3ProgressBar.FinalizeObject [line: 62, column: 3, file: SmartCL.Controls.ProgressBar]").FMeter);
      $Check(Self," in TW3ProgressBar.FinalizeObject [line: 63, column: 3, file: SmartCL.Controls.ProgressBar]").FMeter = null;
      TW3CustomControl.FinalizeObject(Self);
   }
   /// procedure TW3ProgressBar.InitializeObject()
   ///  [line: 54, column: 26, file: SmartCL.Controls.ProgressBar]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      $Check(Self," in TW3ProgressBar.InitializeObject [line: 57, column: 3, file: SmartCL.Controls.ProgressBar]").FMeter = TW3Component.Create$18$($New(TW3ProgressMeter),Self);
   }
   /// procedure TW3ProgressBar.Resize()
   ///  [line: 67, column: 26, file: SmartCL.Controls.ProgressBar]
   ,Resize:function(Self) {
      var mPixels = 0;
      var wd$4 = 0;
      var hd$4 = 0;
      TW3MovableControl.Resize(Self);
      if ($Check(Self," in TW3ProgressBar.Resize [line: 74, column: 6, file: SmartCL.Controls.ProgressBar]").FTotal$1>0) {
         mPixels = TInteger.PercentOfValue($Check(Self," in TW3ProgressBar.Resize [line: 76, column: 40, file: SmartCL.Controls.ProgressBar]").FValue,$Check(Self," in TW3ProgressBar.Resize [line: 76, column: 48, file: SmartCL.Controls.ProgressBar]").FTotal$1);
         wd$4 = $Div(mPixels*TW3MovableControl.ClientWidth(Self),100);
         hd$4 = TW3MovableControl.ClientHeight(Self);
         TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3ProgressBar.Resize [line: 79, column: 5, file: SmartCL.Controls.ProgressBar]").FMeter," in TW3ProgressBar.Resize [line: 79, column: 12, file: SmartCL.Controls.ProgressBar]"),4,4,wd$4-8,hd$4-8);
      } else {
         TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3ProgressBar.Resize [line: 81, column: 5, file: SmartCL.Controls.ProgressBar]").FMeter," in TW3ProgressBar.Resize [line: 81, column: 12, file: SmartCL.Controls.ProgressBar]"),0,0,0,0);
      }
   }
   /// procedure TW3ProgressBar.SetActive(aValue: Boolean)
   ///  [line: 110, column: 26, file: SmartCL.Controls.ProgressBar]
   ,SetActive:function(Self, aValue$63) {
      $Check(Self," in TW3ProgressBar.SetActive [line: 112, column: 3, file: SmartCL.Controls.ProgressBar]").FActive = aValue$63;
      if (($Check(Self," in TW3ProgressBar.SetActive [line: 113, column: 15, file: SmartCL.Controls.ProgressBar]").FMeter!==null)&&$Check($Check(Self," in TW3ProgressBar.SetActive [line: 113, column: 28, file: SmartCL.Controls.ProgressBar]").FMeter," in TW3ProgressBar.SetActive [line: 113, column: 35, file: SmartCL.Controls.ProgressBar]").FHandle) {
         $Check($Check(Self," in TW3ProgressBar.SetActive [line: 114, column: 5, file: SmartCL.Controls.ProgressBar]").FMeter," in TW3ProgressBar.SetActive [line: 114, column: 18, file: SmartCL.Controls.ProgressBar]").FHandle.style[w3_CSSPrefix("AnimationPlayState")] = (aValue$63)?"running":"paused";
      }
   }
   /// procedure TW3ProgressBar.SetPos(aValue: Integer)
   ///  [line: 98, column: 26, file: SmartCL.Controls.ProgressBar]
   ,SetPos:function(Self, aValue$64) {
      aValue$64 = TInteger.EnsureRange(aValue$64,0,$Check(Self," in TW3ProgressBar.SetPos [line: 100, column: 45, file: SmartCL.Controls.ProgressBar]").FTotal$1);
      if (aValue$64!=$Check(Self," in TW3ProgressBar.SetPos [line: 101, column: 16, file: SmartCL.Controls.ProgressBar]").FValue) {
         TW3TagObj.BeginUpdate(Self);
         $Check(Self," in TW3ProgressBar.SetPos [line: 104, column: 5, file: SmartCL.Controls.ProgressBar]").FValue = aValue$64;
         TW3MovableControl.SetWasSized(Self);
         TW3TagObj.EndUpdate($Check(Self," in TW3ProgressBar.SetPos [line: 106, column: 5, file: SmartCL.Controls.ProgressBar]"));
      }
   }
   /// procedure TW3ProgressBar.SetTotal(aValue: Integer)
   ///  [line: 84, column: 26, file: SmartCL.Controls.ProgressBar]
   ,SetTotal:function(Self, aValue$65) {
      aValue$65 = TInteger.EnsureRange(aValue$65,0,2147483647);
      if (aValue$65!=$Check(Self," in TW3ProgressBar.SetTotal [line: 87, column: 16, file: SmartCL.Controls.ProgressBar]").FTotal$1) {
         TW3TagObj.BeginUpdate(Self);
         $Check(Self," in TW3ProgressBar.SetTotal [line: 90, column: 5, file: SmartCL.Controls.ProgressBar]").FTotal$1 = aValue$65;
         if ($Check(Self," in TW3ProgressBar.SetTotal [line: 91, column: 8, file: SmartCL.Controls.ProgressBar]").FTotal$1>$Check(Self," in TW3ProgressBar.SetTotal [line: 91, column: 17, file: SmartCL.Controls.ProgressBar]").FValue) {
            $Check(Self," in TW3ProgressBar.SetTotal [line: 92, column: 7, file: SmartCL.Controls.ProgressBar]").FValue = $Check(Self," in TW3ProgressBar.SetTotal [line: 92, column: 17, file: SmartCL.Controls.ProgressBar]").FTotal$1;
         }
         TW3MovableControl.SetWasSized(Self);
         TW3TagObj.EndUpdate($Check(Self," in TW3ProgressBar.SetTotal [line: 94, column: 5, file: SmartCL.Controls.ProgressBar]"));
      }
   }
   /// function TW3ProgressBar.supportAdjustment() : Boolean
   ///  [line: 49, column: 31, file: SmartCL.Controls.ProgressBar]
   ,supportAdjustment:function(Self) {
      return false;
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize$:function($){return $.ClassType.Resize($)}
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment$:function($){return $.supportAdjustment($)}
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3Image = class (TW3CustomControl)
///  [line: 17, column: 3, file: SmartCL.Controls.Image]
var TW3Image = {
   $ClassName:"TW3Image",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FOnLoad = null;
   }
   /// procedure TW3Image.CBOnLoad()
   ///  [line: 113, column: 20, file: SmartCL.Controls.Image]
   ,CBOnLoad:function(Self) {
      if ($Check(Self," in TW3Image.CBOnLoad [line: 115, column: 15, file: SmartCL.Controls.Image]").FOnLoad) {
         $CheckFunc($Check(Self," in TW3Image.CBOnLoad [line: 116, column: 5, file: SmartCL.Controls.Image]").FOnLoad," in TW3Image.CBOnLoad [line: 116, column: 12, file: SmartCL.Controls.Image]")(Self);
      }
   }
   /// function TW3Image.getEnabled() : Boolean
   ///  [line: 69, column: 19, file: SmartCL.Controls.Image]
   ,GetEnabled:function(Self) {
      return true;
   }
   /// function TW3Image.getHeight() : Integer
   ///  [line: 91, column: 19, file: SmartCL.Controls.Image]
   ,GetHeight:function(Self) {
      var Result = 0;
      Result = TW3MovableControl.GetHeight(Self);
      if (!Result) {
         if ($Check(Self," in TW3Image.getHeight [line: 99, column: 11, file: SmartCL.Controls.Image]").FHandle) {
            Result = parseInt($Check(Self," in TW3Image.getHeight [line: 100, column: 20, file: SmartCL.Controls.Image]").FHandle.height,10);
         }
      }
      return Result
   }
   /// function TW3Image.getReady() : Boolean
   ///  [line: 55, column: 19, file: SmartCL.Controls.Image]
   ,getReady:function(Self) {
      var Result = false;
      if ($Check(Self," in TW3Image.getReady [line: 57, column: 8, file: SmartCL.Controls.Image]").FHandle) {
         Result = ($Check(Self," in TW3Image.getReady [line: 58, column: 22, file: SmartCL.Controls.Image]").FHandle.complete&&($Check(Self," in TW3Image.getReady [line: 59, column: 22, file: SmartCL.Controls.Image]").FHandle.naturalWidth>0))&&($Check(Self," in TW3Image.getReady [line: 60, column: 22, file: SmartCL.Controls.Image]").FHandle.naturalHeight>0);
      }
      return Result
   }
   /// function TW3Image.getSrc() : String
   ///  [line: 63, column: 19, file: SmartCL.Controls.Image]
   ,getSrc:function(Self) {
      var Result = "";
      if ($Check(Self," in TW3Image.getSrc [line: 65, column: 7, file: SmartCL.Controls.Image]").FHandle) {
         Result = ""+$Check(Self," in TW3Image.getSrc [line: 66, column: 15, file: SmartCL.Controls.Image]").FHandle.src;
      }
      return Result
   }
   /// function TW3Image.getWidth() : Integer
   ///  [line: 76, column: 19, file: SmartCL.Controls.Image]
   ,GetWidth:function(Self) {
      var Result = 0;
      Result = TW3MovableControl.GetWidth(Self);
      if (!Result) {
         if ($Check(Self," in TW3Image.getWidth [line: 86, column: 9, file: SmartCL.Controls.Image]").FHandle) {
            Result = parseInt($Check(Self," in TW3Image.getWidth [line: 87, column: 17, file: SmartCL.Controls.Image]").FHandle.width,10);
         }
      }
      return Result
   }
   /// procedure TW3Image.LoadFromURL(aURL: String)
   ///  [line: 119, column: 20, file: SmartCL.Controls.Image]
   ,LoadFromURL:function(Self, aURL) {
      w3_setAttrib($Check(Self," in TW3Image.LoadFromURL [line: 121, column: 16, file: SmartCL.Controls.Image]").FHandle,"src",aURL);
   }
   /// function TW3Image.makeElementTagObj() : THandle
   ///  [line: 50, column: 19, file: SmartCL.Controls.Image]
   ,MakeElementTagObj:function(Self) {
      return w3_createHtmlElement("img");
   }
   /// procedure TW3Image.setSrc(Value: String)
   ///  [line: 124, column: 20, file: SmartCL.Controls.Image]
   ,setSrc:function(Self, Value$13) {
      if (Value$13!=TW3Image.getSrc(Self)) {
         TW3Image.LoadFromURL(Self,Value$13);
      }
   }
   /// procedure TW3Image._setOnLoad(aValue: TNotifyEvent)
   ///  [line: 104, column: 20, file: SmartCL.Controls.Image]
   ,_setOnLoad:function(Self, aValue$66) {
      $Check(Self," in TW3Image._setOnLoad [line: 106, column: 4, file: SmartCL.Controls.Image]").FOnLoad = aValue$66;
      w3_bind2($Check(Self," in TW3Image._setOnLoad [line: 107, column: 13, file: SmartCL.Controls.Image]").FHandle,"onload",(aValue$66)?$Event0(Self,TW3Image.CBOnLoad):$Event0(Self,TW3Component.CBNoBehavior));
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3CustomControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj$:function($){return $.ClassType.MakeElementTagObj($)}
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight$:function($){return $.ClassType.GetHeight($)}
   ,GetWidth$:function($){return $.ClassType.GetWidth($)}
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled$:function($){return $.ClassType.GetEnabled($)}
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3ListMenu = class (TW3CustomControl)
///  [line: 48, column: 3, file: SmartCL.Controls.ListMenu]
var TW3ListMenu = {
   $ClassName:"TW3ListMenu",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FItems = null;
   }
   /// function TW3ListMenu.makeElementTagObj() : THandle
   ///  [line: 80, column: 22, file: SmartCL.Controls.ListMenu]
   ,MakeElementTagObj:function(Self) {
      return w3_createHtmlElement("ul");
   }
   /// procedure TW3ListMenu.InitializeObject()
   ///  [line: 68, column: 23, file: SmartCL.Controls.ListMenu]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      $Check(Self," in TW3ListMenu.InitializeObject [line: 71, column: 3, file: SmartCL.Controls.ListMenu]").FItems = TW3OwnedObject.Create$4$($New(TW3ListItems),Self);
   }
   /// procedure TW3ListMenu.FinalizeObject()
   ///  [line: 74, column: 23, file: SmartCL.Controls.ListMenu]
   ,FinalizeObject:function(Self) {
      TObject.Free($Check(Self," in TW3ListMenu.FinalizeObject [line: 76, column: 3, file: SmartCL.Controls.ListMenu]").FItems);
      TW3CustomControl.FinalizeObject(Self);
   }
   /// procedure TW3ListMenu.StyleTagObject()
   ///  [line: 85, column: 23, file: SmartCL.Controls.ListMenu]
   ,StyleTagObject:function(Self) {
      TW3CustomControl.StyleTagObject(Self);
      TW3CustomControl.SetStyleClass(Self,"ul");
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj$:function($){return $.ClassType.MakeElementTagObj($)}
   ,StyleTagObject$:function($){return $.ClassType.StyleTagObject($)}
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3ListItems = class (TW3OwnedObject)
///  [line: 29, column: 3, file: SmartCL.Controls.ListMenu]
var TW3ListItems = {
   $ClassName:"TW3ListItems",
   $Parent:TW3OwnedObject
   ,$Init:function ($) {
      TW3OwnedObject.$Init($);
      $.FObjects$1 = null;
   }
   /// function TW3ListItems.AcceptParent(aObject: TObject) : Boolean
   ///  [line: 147, column: 23, file: SmartCL.Controls.ListMenu]
   ,AcceptParent:function(Self, aObject$5) {
      return (aObject$5!==null)&&$Is(aObject$5,TW3ListMenu);
   }
   /// procedure TW3ListItems.Clear()
   ///  [line: 152, column: 24, file: SmartCL.Controls.ListMenu]
   ,Clear$5:function(Self) {
      var x$19 = 0;
      var $temp27;
      for(x$19 = 0,$temp27 = TObjectList.GetCount$1($Check(Self," in TW3ListItems.Clear [line: 156, column: 17, file: SmartCL.Controls.ListMenu]").FObjects$1);x$19<$temp27;x$19++) {
         TObject.Free(TObjectList.GetItem$5($Check(Self," in TW3ListItems.Clear [line: 157, column: 5, file: SmartCL.Controls.ListMenu]").FObjects$1,x$19));
      }
      TObjectList.Clear$2($Check(Self," in TW3ListItems.Clear [line: 158, column: 3, file: SmartCL.Controls.ListMenu]").FObjects$1);
   }
   /// constructor TW3ListItems.Create(AOwner: TObject)
   ///  [line: 134, column: 26, file: SmartCL.Controls.ListMenu]
   ,Create$4:function(Self, AOwner$9) {
      TW3OwnedObject.Create$4(Self,AOwner$9);
      $Check(Self," in TW3ListItems.Create [line: 137, column: 3, file: SmartCL.Controls.ListMenu]").FObjects$1 = TObjectList.Create$38($New(TObjectList));
      return Self
   }
   /// destructor TW3ListItems.Destroy()
   ///  [line: 140, column: 25, file: SmartCL.Controls.ListMenu]
   ,Destroy:function(Self) {
      TW3ListItems.Clear$5(Self);
      TObject.Free($Check(Self," in TW3ListItems.Destroy [line: 143, column: 3, file: SmartCL.Controls.ListMenu]").FObjects$1);
      TObject.Destroy(Self);
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
   ,AcceptParent$:function($){return $.ClassType.AcceptParent.apply($.ClassType, arguments)}
   ,Create$4$:function($){return $.ClassType.Create$4.apply($.ClassType, arguments)}
};
/// TW3ListItem = class (TW3CustomControl)
///  [line: 17, column: 3, file: SmartCL.Controls.ListMenu]
var TW3ListItem = {
   $ClassName:"TW3ListItem",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
   }
   /// function TW3ListItem.makeElementTagObj() : THandle
   ///  [line: 113, column: 22, file: SmartCL.Controls.ListMenu]
   ,MakeElementTagObj:function(Self) {
      return w3_createHtmlElement("li");
   }
   /// procedure TW3ListItem.StyleTagObject()
   ///  [line: 118, column: 23, file: SmartCL.Controls.ListMenu]
   ,StyleTagObject:function(Self) {
      TW3CustomControl.SetStyleClass(Self,"li");
   }
   /// function TW3ListItem.getEnabled() : Boolean
   ///  [line: 123, column: 22, file: SmartCL.Controls.ListMenu]
   ,GetEnabled:function(Self) {
      return true;
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3CustomControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj$:function($){return $.ClassType.MakeElementTagObj($)}
   ,StyleTagObject$:function($){return $.ClassType.StyleTagObject($)}
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled$:function($){return $.ClassType.GetEnabled($)}
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3ToolButton = class (TW3CustomControl)
///  [line: 17, column: 3, file: SmartCL.Controls.ToolButton]
var TW3ToolButton = {
   $ClassName:"TW3ToolButton",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
   }
   /// function TW3ToolButton.getCaption() : String
   ///  [line: 53, column: 24, file: SmartCL.Controls.ToolButton]
   ,getCaption:function(Self) {
      return w3_getPropertyAsStr($Check(Self," in TW3ToolButton.getCaption [line: 55, column: 33, file: SmartCL.Controls.ToolButton]").FHandle,"innerHTML");
   }
   /// procedure TW3ToolButton.setCaption(aNewCaption: String)
   ///  [line: 58, column: 25, file: SmartCL.Controls.ToolButton]
   ,setCaption$1:function(Self, aNewCaption) {
      w3_setProperty($Check(Self," in TW3ToolButton.setCaption [line: 60, column: 18, file: SmartCL.Controls.ToolButton]").FHandle,"innerHTML",aNewCaption);
   }
   /// function TW3ToolButton.makeElementTagObj() : THandle
   ///  [line: 42, column: 24, file: SmartCL.Controls.ToolButton]
   ,MakeElementTagObj:function(Self) {
      return w3_createHtmlElement("button");
   }
   /// procedure TW3ToolButton.StyleTagObject()
   ///  [line: 47, column: 25, file: SmartCL.Controls.ToolButton]
   ,StyleTagObject:function(Self) {
      TW3CustomControl.StyleTagObject(Self);
      w3_setStyle($Check(Self," in TW3ToolButton.StyleTagObject [line: 50, column: 15, file: SmartCL.Controls.ToolButton]").FHandle,"fontSmooth","always");
   }
   /// procedure TW3ToolButton.InitializeObject()
   ///  [line: 35, column: 25, file: SmartCL.Controls.ToolButton]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      TW3MovableControl.SetWidth$($Check(Self," in TW3ToolButton.InitializeObject [line: 38, column: 3, file: SmartCL.Controls.ToolButton]"),70);
      TW3MovableControl.SetHeight$($Check(Self," in TW3ToolButton.InitializeObject [line: 39, column: 3, file: SmartCL.Controls.ToolButton]"),30);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj$:function($){return $.ClassType.MakeElementTagObj($)}
   ,StyleTagObject$:function($){return $.ClassType.StyleTagObject($)}
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3ToolbarButton = class (TW3CustomControl)
///  [line: 19, column: 3, file: SmartCL.Controls.ToolBar]
var TW3ToolbarButton = {
   $ClassName:"TW3ToolbarButton",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.a$39 = 0;
      $.a$38 = false;
      $.FCaption$2 = "";
      $.FGlyph = $.FOnDestroy = null;
   }
   /// procedure TW3ToolbarButton.CBClick(eventObj: JEvent)
   ///  [line: 145, column: 28, file: SmartCL.Controls.ToolBar]
   ,CBClick:function(Self, eventObj$24) {
      if ($Check(Self," in TW3ToolbarButton.CBClick [line: 147, column: 6, file: SmartCL.Controls.ToolBar]").a$39>0) {
         if (TW3ToolbarButton.getDown(Self)) {
            if ($Check(Self," in TW3ToolbarButton.CBClick [line: 152, column: 13, file: SmartCL.Controls.ToolBar]").a$38) {
               TW3ToolbarButton.setDown(Self,false);
            }
         } else {
            TW3ToolbarButton.MakeGroupUp(Self,$Check(Self," in TW3ToolbarButton.CBClick [line: 149, column: 19, file: SmartCL.Controls.ToolBar]").a$39);
            TW3ToolbarButton.setDown(Self,true);
         }
      }
      TW3CustomControl.CBClick(Self,eventObj$24);
   }
   /// procedure TW3ToolbarButton.ChangeCaption(aNewCaption: String)
   ///  [line: 98, column: 28, file: SmartCL.Controls.ToolBar]
   ,ChangeCaption:function(Self, aNewCaption$1) {
      var mHtml = "";
      $Check(Self," in TW3ToolbarButton.ChangeCaption [line: 102, column: 3, file: SmartCL.Controls.ToolBar]").FCaption$2 = aNewCaption$1;
      if (TW3Image.getReady($Check($Check(Self," in TW3ToolbarButton.ChangeCaption [line: 104, column: 6, file: SmartCL.Controls.ToolBar]").FGlyph," in TW3ToolbarButton.ChangeCaption [line: 104, column: 13, file: SmartCL.Controls.ToolBar]"))) {
         mHtml = mHtml+"<img src=\""+TW3Image.getSrc($Check(Self," in TW3ToolbarButton.ChangeCaption [line: 106, column: 37, file: SmartCL.Controls.ToolBar]").FGlyph)+"\" width=16px height=16px>";
         mHtml+="<br>";
      }
      mHtml+=$Check(Self," in TW3ToolbarButton.ChangeCaption [line: 109, column: 20, file: SmartCL.Controls.ToolBar]").FCaption$2;
      TW3TagObj.SetInnerHTML(Self,mHtml);
   }
   /// constructor TW3ToolbarButton.Create(AOwner: TW3CustomControl; OnDestroy: TNotifyEvent = nil)
   ///  [line: 78, column: 30, file: SmartCL.Controls.ToolBar]
   ,Create$50:function(Self, AOwner$10, OnDestroy) {
      TW3CustomControl.Create$18(Self,AOwner$10);
      $Check(Self," in TW3ToolbarButton.Create [line: 81, column: 3, file: SmartCL.Controls.ToolBar]").FOnDestroy = OnDestroy;
      return Self
   }
   /// destructor TW3ToolbarButton.Destroy()
   ///  [line: 84, column: 29, file: SmartCL.Controls.ToolBar]
   ,Destroy:function(Self) {
      if ($Check(Self," in TW3ToolbarButton.Destroy [line: 86, column: 15, file: SmartCL.Controls.ToolBar]").FOnDestroy) {
         $CheckFunc($Check(Self," in TW3ToolbarButton.Destroy [line: 87, column: 5, file: SmartCL.Controls.ToolBar]").FOnDestroy," in TW3ToolbarButton.Destroy [line: 87, column: 15, file: SmartCL.Controls.ToolBar]")(Self);
      }
      TW3TagObj.Destroy(Self);
   }
   /// procedure TW3ToolbarButton.FinalizeObject()
   ///  [line: 114, column: 28, file: SmartCL.Controls.ToolBar]
   ,FinalizeObject:function(Self) {
      TObject.Free($Check(Self," in TW3ToolbarButton.FinalizeObject [line: 116, column: 3, file: SmartCL.Controls.ToolBar]").FGlyph);
      TW3CustomControl.FinalizeObject(Self);
   }
   /// function TW3ToolbarButton.getDown() : Boolean
   ///  [line: 158, column: 27, file: SmartCL.Controls.ToolBar]
   ,getDown:function(Self) {
      return TW3CSSClassStyleNames.IndexOf$2(TW3CustomControl.GetClassNames(Self),"ButtonDown")>=0;
   }
   /// procedure TW3ToolbarButton.HandleGlyphReady(Sender: TObject)
   ///  [line: 120, column: 28, file: SmartCL.Controls.ToolBar]
   ,HandleGlyphReady:function(Self, Sender$6) {
      var mTemp$3 = "";
      mTemp$3 = $Check(Self," in TW3ToolbarButton.HandleGlyphReady [line: 124, column: 12, file: SmartCL.Controls.ToolBar]").FCaption$2;
      $Check(Self," in TW3ToolbarButton.HandleGlyphReady [line: 125, column: 3, file: SmartCL.Controls.ToolBar]").FCaption$2 = "";
      TW3ToolbarButton.ChangeCaption($Check(Self," in TW3ToolbarButton.HandleGlyphReady [line: 126, column: 3, file: SmartCL.Controls.ToolBar]"),mTemp$3);
   }
   /// procedure TW3ToolbarButton.InitializeObject()
   ///  [line: 91, column: 28, file: SmartCL.Controls.ToolBar]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      $Check(Self," in TW3ToolbarButton.InitializeObject [line: 94, column: 3, file: SmartCL.Controls.ToolBar]").FGlyph = TW3Component.Create$18$($New(TW3Image),null);
      TW3Image._setOnLoad($Check(Self," in TW3ToolbarButton.InitializeObject [line: 95, column: 3, file: SmartCL.Controls.ToolBar]").FGlyph,$Event1(Self,TW3ToolbarButton.HandleGlyphReady));
   }
   /// function TW3ToolbarButton.makeElementTagObj() : THandle
   ///  [line: 140, column: 27, file: SmartCL.Controls.ToolBar]
   ,MakeElementTagObj:function(Self) {
      return w3_createHtmlElement("button");
   }
   /// procedure TW3ToolbarButton.MakeGroupUp(aGroupIndex: Integer)
   ///  [line: 173, column: 28, file: SmartCL.Controls.ToolBar]
   ,MakeGroupUp:function(Self, aGroupIndex) {
      var i$4 = 0;
      var btn = null;
      var $temp28;
      for(i$4 = 0,$temp28 = TW3Toolbar.getButtonCount(TW3ToolbarButton.Toolbar(Self));i$4<$temp28;i$4++) {
         btn = TW3Toolbar.getButton(TW3ToolbarButton.Toolbar(Self),i$4);
         if (($Check(btn," in TW3ToolbarButton.MakeGroupUp [line: 177, column: 13, file: SmartCL.Controls.ToolBar]").a$39==aGroupIndex)&&TW3ToolbarButton.getDown(btn)) {
            TW3ToolbarButton.setDown(btn,false);
         }
      }
   }
   /// procedure TW3ToolbarButton.SetCaption(aNewCaption: String)
   ///  [line: 134, column: 28, file: SmartCL.Controls.ToolBar]
   ,SetCaption$2:function(Self, aNewCaption$2) {
      if (aNewCaption$2!=$Check(Self," in TW3ToolbarButton.SetCaption [line: 136, column: 19, file: SmartCL.Controls.ToolBar]").FCaption$2) {
         TW3ToolbarButton.ChangeCaption($Check(Self," in TW3ToolbarButton.SetCaption [line: 137, column: 5, file: SmartCL.Controls.ToolBar]"),aNewCaption$2);
      }
   }
   /// procedure TW3ToolbarButton.setDown(Value: Boolean)
   ///  [line: 163, column: 28, file: SmartCL.Controls.ToolBar]
   ,setDown:function(Self, Value$14) {
      if (Value$14) {
         if (!TW3ToolbarButton.getDown(Self)) {
            TW3CSSClassStyleNames.Add$2(TW3CustomControl.GetClassNames(Self),"ButtonDown");
         }
      } else if (TW3ToolbarButton.getDown(Self)) {
         TW3CSSClassStyleNames.RemoveByName(TW3CustomControl.GetClassNames(Self),"ButtonDown");
      }
   }
   /// function TW3ToolbarButton.Toolbar() : TW3Toolbar
   ///  [line: 129, column: 27, file: SmartCL.Controls.ToolBar]
   ,Toolbar:function(Self) {
      return $As($Check(Self," in TW3ToolbarButton.Toolbar [line: 131, column: 13, file: SmartCL.Controls.ToolBar]").FParent,TW3Toolbar);
   }
   ,Destroy$:function($){return $.ClassType.Destroy($)}
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj$:function($){return $.ClassType.MakeElementTagObj($)}
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick$:function($){return $.ClassType.CBClick.apply($.ClassType, arguments)}
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3Toolbar = class (TW3CustomControl)
///  [line: 47, column: 3, file: SmartCL.Controls.ToolBar]
var TW3Toolbar = {
   $ClassName:"TW3Toolbar",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FBtnHeight = $.FBtnSpacing = $.FBtnWidth = 0;
      $.FButtons = [];
   }
   /// function TW3Toolbar.getButton(idx: Integer) : TW3ToolbarButton
   ///  [line: 268, column: 21, file: SmartCL.Controls.ToolBar]
   ,getButton:function(Self, idx$3) {
      return $DIdxR($Check(Self," in TW3Toolbar.getButton [line: 270, column: 13, file: SmartCL.Controls.ToolBar]").FButtons,idx$3," in TW3Toolbar.getButton [line: 270, column: 26, file: SmartCL.Controls.ToolBar]");
   }
   /// function TW3Toolbar.getButtonCount() : Integer
   ///  [line: 273, column: 21, file: SmartCL.Controls.ToolBar]
   ,getButtonCount:function(Self) {
      return $Check(Self," in TW3Toolbar.getButtonCount [line: 275, column: 13, file: SmartCL.Controls.ToolBar]").FButtons.length;
   }
   /// procedure TW3Toolbar.InitializeObject()
   ///  [line: 186, column: 22, file: SmartCL.Controls.ToolBar]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      $Check(Self," in TW3Toolbar.InitializeObject [line: 189, column: 3, file: SmartCL.Controls.ToolBar]").FBtnWidth = 100;
      $Check(Self," in TW3Toolbar.InitializeObject [line: 190, column: 3, file: SmartCL.Controls.ToolBar]").FBtnHeight = 36;
      $Check(Self," in TW3Toolbar.InitializeObject [line: 191, column: 3, file: SmartCL.Controls.ToolBar]").FBtnSpacing = 2;
   }
   /// procedure TW3Toolbar.Resize()
   ///  [line: 231, column: 22, file: SmartCL.Controls.ToolBar]
   ,Resize:function(Self) {
      var x$20 = 0;
      var dx$5 = 0;
      var dy$6 = 0;
      var mChild$2 = null;
      dx$5 = $Check(Self," in TW3Toolbar.Resize [line: 237, column: 9, file: SmartCL.Controls.ToolBar]").FBtnSpacing;
      var $temp29;
      for(x$20 = 0,$temp29 = TW3Component.GetChildCount(Self);x$20<$temp29;x$20++) {
         mChild$2 = TW3Component.GetChildObject(Self,x$20);
         if ($Is(mChild$2,TW3ToolbarButton)) {
            dy$6 = 0;
            TW3MovableControl.SetBounds$2($Check($As(mChild$2,TW3ToolbarButton)," in TW3Toolbar.Resize [line: 245, column: 32, file: SmartCL.Controls.ToolBar]"),dx$5,dy$6,$Check(Self," in TW3Toolbar.Resize [line: 245, column: 48, file: SmartCL.Controls.ToolBar]").FBtnWidth,TW3MovableControl.GetHeight$($Check(Self," in TW3Toolbar.Resize [line: 245, column: 58, file: SmartCL.Controls.ToolBar]")));
            (dx$5+= ($Check(Self," in TW3Toolbar.Resize [line: 246, column: 14, file: SmartCL.Controls.ToolBar]").FBtnWidth+$Check(Self," in TW3Toolbar.Resize [line: 246, column: 26, file: SmartCL.Controls.ToolBar]").FBtnSpacing));
         }
      }
   }
   /// procedure TW3Toolbar.setBtnHeight(Value: Integer)
   ///  [line: 206, column: 22, file: SmartCL.Controls.ToolBar]
   ,setBtnHeight:function(Self, Value$15) {
      if ($Check(Self," in TW3Toolbar.setBtnHeight [line: 208, column: 6, file: SmartCL.Controls.ToolBar]").FObjReady) {
         Value$15 = ClampInt(Value$15,16,TW3MovableControl.GetHeight$($Check(Self," in TW3Toolbar.setBtnHeight [line: 209, column: 30, file: SmartCL.Controls.ToolBar]")));
      } else {
         Value$15 = Math.max(Value$15,16);
      }
      if (Value$15!=$Check(Self," in TW3Toolbar.setBtnHeight [line: 212, column: 15, file: SmartCL.Controls.ToolBar]").FBtnHeight) {
         TW3TagObj.BeginUpdate(Self);
         $Check(Self," in TW3Toolbar.setBtnHeight [line: 215, column: 5, file: SmartCL.Controls.ToolBar]").FBtnHeight = Value$15;
         TW3MovableControl.SetWasSized(Self);
         TW3TagObj.EndUpdate($Check(Self," in TW3Toolbar.setBtnHeight [line: 217, column: 5, file: SmartCL.Controls.ToolBar]"));
      }
   }
   /// procedure TW3Toolbar.setBtnSpacing(Value: Integer)
   ///  [line: 221, column: 22, file: SmartCL.Controls.ToolBar]
   ,setBtnSpacing:function(Self, Value$16) {
      Value$16 = Math.max(Value$16,1);
      if (Value$16!=$Check(Self," in TW3Toolbar.setBtnSpacing [line: 224, column: 15, file: SmartCL.Controls.ToolBar]").FBtnSpacing) {
         $Check(Self," in TW3Toolbar.setBtnSpacing [line: 226, column: 5, file: SmartCL.Controls.ToolBar]").FBtnSpacing = Value$16;
         TW3CustomControl.LayoutChildren($Check(Self," in TW3Toolbar.setBtnSpacing [line: 227, column: 5, file: SmartCL.Controls.ToolBar]"));
      }
   }
   /// procedure TW3Toolbar.setBtnWidth(Value: Integer)
   ///  [line: 194, column: 22, file: SmartCL.Controls.ToolBar]
   ,setBtnWidth:function(Self, Value$17) {
      Value$17 = Math.max(Value$17,16);
      if (Value$17!=$Check(Self," in TW3Toolbar.setBtnWidth [line: 197, column: 15, file: SmartCL.Controls.ToolBar]").FBtnWidth) {
         TW3TagObj.BeginUpdate(Self);
         $Check(Self," in TW3Toolbar.setBtnWidth [line: 200, column: 5, file: SmartCL.Controls.ToolBar]").FBtnWidth = Value$17;
         TW3MovableControl.SetWasSized(Self);
         TW3TagObj.EndUpdate($Check(Self," in TW3Toolbar.setBtnWidth [line: 202, column: 5, file: SmartCL.Controls.ToolBar]"));
      }
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize$:function($){return $.ClassType.Resize($)}
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3CustomScrollBar = class (TW3CustomControl)
///  [line: 24, column: 3, file: SmartCL.Controls.ScrollBar]
var TW3CustomScrollBar = {
   $ClassName:"TW3CustomScrollBar",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
      $.FDownBtn = $.FHandle$5 = $.FUpBtn = null;
      $.FPageSize = $.FPosition = $.FTotal = 0;
   }
   /// function TW3CustomScrollBar.calcSizeOfHandle() : Integer
   ///  [line: 209, column: 29, file: SmartCL.Controls.ScrollBar]
   ,calcSizeOfHandle:function(Self) {
      var Result = 0;
      var mTemp$4 = 0;
      mTemp$4 = TInteger.PercentOfValue($Check(Self," in TW3CustomScrollBar.calcSizeOfHandle [line: 213, column: 36, file: SmartCL.Controls.ScrollBar]").FPageSize,$Check(Self," in TW3CustomScrollBar.calcSizeOfHandle [line: 213, column: 45, file: SmartCL.Controls.ScrollBar]").FTotal);
      Result = Trunc((mTemp$4*TW3CustomScrollBar.getArea$($Check(Self," in TW3CustomScrollBar.calcSizeOfHandle [line: 214, column: 28, file: SmartCL.Controls.ScrollBar]")))/100);
      return Result
   }
   /// procedure TW3CustomScrollBar.FinalizeObject()
   ///  [line: 117, column: 30, file: SmartCL.Controls.ScrollBar]
   ,FinalizeObject:function(Self) {
      TObject.Free($Check(Self," in TW3CustomScrollBar.FinalizeObject [line: 119, column: 3, file: SmartCL.Controls.ScrollBar]").FUpBtn);
      TObject.Free($Check(Self," in TW3CustomScrollBar.FinalizeObject [line: 120, column: 3, file: SmartCL.Controls.ScrollBar]").FDownBtn);
      TObject.Free($Check(Self," in TW3CustomScrollBar.FinalizeObject [line: 121, column: 3, file: SmartCL.Controls.ScrollBar]").FHandle$5);
      TW3CustomControl.FinalizeObject(Self);
   }
   /// procedure TW3CustomScrollBar.HandleMaxClick(Sender: TObject)
   ///  [line: 131, column: 30, file: SmartCL.Controls.ScrollBar]
   ,HandleMaxClick:function(Self, Sender$7) {
      if ($Check(Self," in TW3CustomScrollBar.HandleMaxClick [line: 133, column: 6, file: SmartCL.Controls.ScrollBar]").FTotal>0) {
         TW3CustomScrollBar.setPosition($Check(Self," in TW3CustomScrollBar.HandleMaxClick [line: 134, column: 3, file: SmartCL.Controls.ScrollBar]"),$Check(Self," in TW3CustomScrollBar.HandleMaxClick [line: 134, column: 15, file: SmartCL.Controls.ScrollBar]").FPosition+$Check(Self," in TW3CustomScrollBar.HandleMaxClick [line: 134, column: 25, file: SmartCL.Controls.ScrollBar]").FPageSize);
      }
   }
   /// procedure TW3CustomScrollBar.HandleMinClick(Sender: TObject)
   ///  [line: 125, column: 30, file: SmartCL.Controls.ScrollBar]
   ,HandleMinClick:function(Self, Sender$8) {
      if ($Check(Self," in TW3CustomScrollBar.HandleMinClick [line: 127, column: 6, file: SmartCL.Controls.ScrollBar]").FTotal>0) {
         TW3CustomScrollBar.setPosition($Check(Self," in TW3CustomScrollBar.HandleMinClick [line: 128, column: 3, file: SmartCL.Controls.ScrollBar]"),$Check(Self," in TW3CustomScrollBar.HandleMinClick [line: 128, column: 15, file: SmartCL.Controls.ScrollBar]").FPosition-$Check(Self," in TW3CustomScrollBar.HandleMinClick [line: 128, column: 25, file: SmartCL.Controls.ScrollBar]").FPageSize);
      }
   }
   /// procedure TW3CustomScrollBar.InitializeObject()
   ///  [line: 105, column: 30, file: SmartCL.Controls.ScrollBar]
   ,InitializeObject:function(Self) {
      TW3CustomControl.InitializeObject(Self);
      $Check(Self," in TW3CustomScrollBar.InitializeObject [line: 108, column: 3, file: SmartCL.Controls.ScrollBar]").FUpBtn = TW3Component.Create$18$($New(TW3ScrollbarLowerBtn),Self);
      TW3CustomControl._setMouseClick($Check(Self," in TW3CustomScrollBar.InitializeObject [line: 109, column: 3, file: SmartCL.Controls.ScrollBar]").FUpBtn,$Event1(Self,TW3CustomScrollBar.HandleMinClick));
      $Check(Self," in TW3CustomScrollBar.InitializeObject [line: 111, column: 3, file: SmartCL.Controls.ScrollBar]").FDownBtn = TW3Component.Create$18$($New(TW3ScrollbarHigherBtn),Self);
      TW3CustomControl._setMouseClick($Check(Self," in TW3CustomScrollBar.InitializeObject [line: 112, column: 3, file: SmartCL.Controls.ScrollBar]").FDownBtn,$Event1(Self,TW3CustomScrollBar.HandleMaxClick));
      $Check(Self," in TW3CustomScrollBar.InitializeObject [line: 114, column: 3, file: SmartCL.Controls.ScrollBar]").FHandle$5 = TW3Component.Create$18$($New(TW3ScrollbarHandle),Self);
   }
   /// function TW3CustomScrollBar.PixelOffsetToPosition(aPxPos: Integer) : Integer
   ///  [line: 225, column: 29, file: SmartCL.Controls.ScrollBar]
   ,PixelOffsetToPosition:function(Self, aPxPos) {
      var Result = 0;
      var mTemp$5 = 0;
      mTemp$5 = TInteger.PercentOfValue(aPxPos,TW3CustomScrollBar.getArea$($Check(Self," in TW3CustomScrollBar.PixelOffsetToPosition [line: 229, column: 43, file: SmartCL.Controls.ScrollBar]")));
      Result = Trunc((mTemp$5*$Check(Self," in TW3CustomScrollBar.PixelOffsetToPosition [line: 230, column: 29, file: SmartCL.Controls.ScrollBar]").FTotal)/100);
      return Result
   }
   /// function TW3CustomScrollBar.PositionToPixelOffset(aPosition: Integer) : Integer
   ///  [line: 217, column: 29, file: SmartCL.Controls.ScrollBar]
   ,PositionToPixelOffset:function(Self, aPosition) {
      var Result = 0;
      var mTemp$6 = 0;
      mTemp$6 = TInteger.PercentOfValue(aPosition,$Check(Self," in TW3CustomScrollBar.PositionToPixelOffset [line: 221, column: 46, file: SmartCL.Controls.ScrollBar]").FTotal);
      Result = Trunc((mTemp$6*TW3CustomScrollBar.getArea$($Check(Self," in TW3CustomScrollBar.PositionToPixelOffset [line: 222, column: 28, file: SmartCL.Controls.ScrollBar]")))/100);
      return Result
   }
   /// procedure TW3CustomScrollBar.setPageSize(aValue: Integer)
   ///  [line: 166, column: 30, file: SmartCL.Controls.ScrollBar]
   ,setPageSize:function(Self, aValue$67) {
      aValue$67 = TInteger.EnsureRange(aValue$67,0,$Check(Self," in TW3CustomScrollBar.setPageSize [line: 168, column: 45, file: SmartCL.Controls.ScrollBar]").FTotal);
      if (aValue$67!=$Check(Self," in TW3CustomScrollBar.setPageSize [line: 169, column: 16, file: SmartCL.Controls.ScrollBar]").FPageSize) {
         $Check(Self," in TW3CustomScrollBar.setPageSize [line: 171, column: 5, file: SmartCL.Controls.ScrollBar]").FPageSize = aValue$67;
         if ($Check(Self," in TW3CustomScrollBar.setPageSize [line: 172, column: 8, file: SmartCL.Controls.ScrollBar]").FTotal>0) {
            TW3CustomScrollBar.Recalculate$($Check(Self," in TW3CustomScrollBar.setPageSize [line: 174, column: 7, file: SmartCL.Controls.ScrollBar]"));
            TW3CustomControl.LayoutChildren($Check(Self," in TW3CustomScrollBar.setPageSize [line: 175, column: 7, file: SmartCL.Controls.ScrollBar]"));
         }
         if ($Check(Self," in TW3CustomScrollBar.setPageSize [line: 177, column: 17, file: SmartCL.Controls.ScrollBar]").FOnChanged) {
            $CheckFunc($Check(Self," in TW3CustomScrollBar.setPageSize [line: 178, column: 16, file: SmartCL.Controls.ScrollBar]").FOnChanged," in TW3CustomScrollBar.setPageSize [line: 178, column: 16, file: SmartCL.Controls.ScrollBar]")(Self);
         }
      }
   }
   /// procedure TW3CustomScrollBar.setPosition(aValue: Integer)
   ///  [line: 182, column: 30, file: SmartCL.Controls.ScrollBar]
   ,setPosition:function(Self, aValue$68) {
      aValue$68 = TInteger.EnsureRange(aValue$68,0,($Check(Self," in TW3CustomScrollBar.setPosition [line: 184, column: 45, file: SmartCL.Controls.ScrollBar]").FTotal-$Check(Self," in TW3CustomScrollBar.setPosition [line: 184, column: 54, file: SmartCL.Controls.ScrollBar]").FPageSize));
      if (aValue$68!=$Check(Self," in TW3CustomScrollBar.setPosition [line: 185, column: 16, file: SmartCL.Controls.ScrollBar]").FPosition) {
         $Check(Self," in TW3CustomScrollBar.setPosition [line: 187, column: 5, file: SmartCL.Controls.ScrollBar]").FPosition = aValue$68;
         if ($Check(Self," in TW3CustomScrollBar.setPosition [line: 188, column: 8, file: SmartCL.Controls.ScrollBar]").FTotal>0) {
            TW3CustomScrollBar.Recalculate$($Check(Self," in TW3CustomScrollBar.setPosition [line: 190, column: 7, file: SmartCL.Controls.ScrollBar]"));
            TW3CustomControl.LayoutChildren($Check(Self," in TW3CustomScrollBar.setPosition [line: 191, column: 7, file: SmartCL.Controls.ScrollBar]"));
         }
         if ($Check(Self," in TW3CustomScrollBar.setPosition [line: 193, column: 17, file: SmartCL.Controls.ScrollBar]").FOnChanged) {
            $CheckFunc($Check(Self," in TW3CustomScrollBar.setPosition [line: 194, column: 16, file: SmartCL.Controls.ScrollBar]").FOnChanged," in TW3CustomScrollBar.setPosition [line: 194, column: 16, file: SmartCL.Controls.ScrollBar]")(Self);
         }
      }
   }
   /// procedure TW3CustomScrollBar.setPositionNoCalc(aValue: Integer)
   ///  [line: 198, column: 30, file: SmartCL.Controls.ScrollBar]
   ,setPositionNoCalc:function(Self, aValue$69) {
      aValue$69 = TInteger.EnsureRange(aValue$69,0,($Check(Self," in TW3CustomScrollBar.setPositionNoCalc [line: 200, column: 45, file: SmartCL.Controls.ScrollBar]").FTotal-$Check(Self," in TW3CustomScrollBar.setPositionNoCalc [line: 200, column: 54, file: SmartCL.Controls.ScrollBar]").FPageSize));
      if (aValue$69!=$Check(Self," in TW3CustomScrollBar.setPositionNoCalc [line: 201, column: 16, file: SmartCL.Controls.ScrollBar]").FPosition) {
         $Check(Self," in TW3CustomScrollBar.setPositionNoCalc [line: 203, column: 5, file: SmartCL.Controls.ScrollBar]").FPosition = aValue$69;
         if ($Check(Self," in TW3CustomScrollBar.setPositionNoCalc [line: 204, column: 17, file: SmartCL.Controls.ScrollBar]").FOnChanged) {
            $CheckFunc($Check(Self," in TW3CustomScrollBar.setPositionNoCalc [line: 205, column: 16, file: SmartCL.Controls.ScrollBar]").FOnChanged," in TW3CustomScrollBar.setPositionNoCalc [line: 205, column: 16, file: SmartCL.Controls.ScrollBar]")(Self);
         }
      }
   }
   /// procedure TW3CustomScrollBar.setTotal(aValue: Integer)
   ///  [line: 142, column: 30, file: SmartCL.Controls.ScrollBar]
   ,setTotal:function(Self, aValue$70) {
      aValue$70 = TInteger.EnsureRange(aValue$70,0,2147483647);
      if (aValue$70!=$Check(Self," in TW3CustomScrollBar.setTotal [line: 145, column: 16, file: SmartCL.Controls.ScrollBar]").FTotal) {
         $Check(Self," in TW3CustomScrollBar.setTotal [line: 147, column: 5, file: SmartCL.Controls.ScrollBar]").FTotal = aValue$70;
         if ($Check(Self," in TW3CustomScrollBar.setTotal [line: 149, column: 8, file: SmartCL.Controls.ScrollBar]").FPageSize>$Check(Self," in TW3CustomScrollBar.setTotal [line: 149, column: 20, file: SmartCL.Controls.ScrollBar]").FTotal) {
            $Check(Self," in TW3CustomScrollBar.setTotal [line: 150, column: 5, file: SmartCL.Controls.ScrollBar]").FPageSize = $Check(Self," in TW3CustomScrollBar.setTotal [line: 150, column: 18, file: SmartCL.Controls.ScrollBar]").FTotal;
         }
         if ($Check(Self," in TW3CustomScrollBar.setTotal [line: 152, column: 8, file: SmartCL.Controls.ScrollBar]").FPosition>($Check(Self," in TW3CustomScrollBar.setTotal [line: 152, column: 20, file: SmartCL.Controls.ScrollBar]").FTotal-$Check(Self," in TW3CustomScrollBar.setTotal [line: 152, column: 29, file: SmartCL.Controls.ScrollBar]").FPageSize)) {
            if (($Check(Self," in TW3CustomScrollBar.setTotal [line: 154, column: 11, file: SmartCL.Controls.ScrollBar]").FTotal-$Check(Self," in TW3CustomScrollBar.setTotal [line: 154, column: 20, file: SmartCL.Controls.ScrollBar]").FPageSize)<1) {
               $Check(Self," in TW3CustomScrollBar.setTotal [line: 155, column: 7, file: SmartCL.Controls.ScrollBar]").FPosition = 0;
            } else {
               $Check(Self," in TW3CustomScrollBar.setTotal [line: 156, column: 7, file: SmartCL.Controls.ScrollBar]").FPosition = $Check(Self," in TW3CustomScrollBar.setTotal [line: 156, column: 20, file: SmartCL.Controls.ScrollBar]").FTotal-$Check(Self," in TW3CustomScrollBar.setTotal [line: 156, column: 29, file: SmartCL.Controls.ScrollBar]").FPageSize;
            }
         }
         TW3CustomScrollBar.Recalculate$($Check(Self," in TW3CustomScrollBar.setTotal [line: 158, column: 5, file: SmartCL.Controls.ScrollBar]"));
         TW3CustomControl.LayoutChildren($Check(Self," in TW3CustomScrollBar.setTotal [line: 159, column: 5, file: SmartCL.Controls.ScrollBar]"));
         if ($Check(Self," in TW3CustomScrollBar.setTotal [line: 161, column: 17, file: SmartCL.Controls.ScrollBar]").FOnChanged) {
            $CheckFunc($Check(Self," in TW3CustomScrollBar.setTotal [line: 162, column: 16, file: SmartCL.Controls.ScrollBar]").FOnChanged," in TW3CustomScrollBar.setTotal [line: 162, column: 16, file: SmartCL.Controls.ScrollBar]")(Self);
         }
      }
   }
   /// function TW3CustomScrollBar.supportAdjustment() : Boolean
   ///  [line: 137, column: 35, file: SmartCL.Controls.ScrollBar]
   ,supportAdjustment:function(Self) {
      return false;
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject$:function($){return $.ClassType.FinalizeObject($)}
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment$:function($){return $.supportAdjustment($)}
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
   ,getArea$:function($){return $.ClassType.getArea($)}
   ,Recalculate$:function($){return $.ClassType.Recalculate($)}
};
/// TW3VerticalScrollbar = class (TW3CustomScrollBar)
///  [line: 58, column: 3, file: SmartCL.Controls.ScrollBar]
var TW3VerticalScrollbar = {
   $ClassName:"TW3VerticalScrollbar",
   $Parent:TW3CustomScrollBar
   ,$Init:function ($) {
      TW3CustomScrollBar.$Init($);
      $.FDragPos = $.FDragSize = $.FEntry = 0;
      $.FMoving = false;
   }
   /// function TW3VerticalScrollbar.getArea() : Integer
   ///  [line: 366, column: 31, file: SmartCL.Controls.ScrollBar]
   ,getArea:function(Self) {
      return TW3MovableControl.GetTop($Check($Check(Self," in TW3VerticalScrollbar.getArea [line: 368, column: 14, file: SmartCL.Controls.ScrollBar]").FDownBtn," in TW3VerticalScrollbar.getArea [line: 368, column: 24, file: SmartCL.Controls.ScrollBar]"))-1-(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3VerticalScrollbar.getArea [line: 368, column: 36, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3VerticalScrollbar.getArea [line: 368, column: 46, file: SmartCL.Controls.ScrollBar]")).Bottom$1+1);
   }
   /// procedure TW3VerticalScrollbar.HandleDragBarMouseDown(Sender: TObject; button: TMouseButton; shiftState: TShiftState; x: Integer; y: Integer)
   ///  [line: 371, column: 32, file: SmartCL.Controls.ScrollBar]
   ,HandleDragBarMouseDown:function(Self, Sender$9, button$5, shiftState$11, x$21, y$8) {
      if (!button$5) {
         if (TRect$ContainsPos$1(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 376, column: 8, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 376, column: 19, file: SmartCL.Controls.ScrollBar]")),x$21,y$8)) {
            TW3CustomControl.SetCapture(Self);
            $Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 379, column: 7, file: SmartCL.Controls.ScrollBar]").FEntry = y$8-TW3MovableControl.GetTop($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 379, column: 21, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 379, column: 32, file: SmartCL.Controls.ScrollBar]"));
            $Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 380, column: 7, file: SmartCL.Controls.ScrollBar]").FMoving = true;
         } else if ((y$8<TW3MovableControl.GetTop($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 383, column: 14, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 383, column: 25, file: SmartCL.Controls.ScrollBar]")))&&(!TRect$ContainsPos$1(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 384, column: 15, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 384, column: 25, file: SmartCL.Controls.ScrollBar]")),x$21,y$8))) {
            TW3CustomScrollBar.setPosition($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 385, column: 7, file: SmartCL.Controls.ScrollBar]"),$Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 385, column: 19, file: SmartCL.Controls.ScrollBar]").FPosition-$Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 385, column: 30, file: SmartCL.Controls.ScrollBar]").FPageSize);
         } else if ((y$8>TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 387, column: 13, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 387, column: 24, file: SmartCL.Controls.ScrollBar]")).Bottom$1)&&(!TRect$ContainsPos$1(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 388, column: 15, file: SmartCL.Controls.ScrollBar]").FDownBtn," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 388, column: 25, file: SmartCL.Controls.ScrollBar]")),x$21,y$8))) {
            TW3CustomScrollBar.setPosition($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 389, column: 7, file: SmartCL.Controls.ScrollBar]"),$Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 389, column: 19, file: SmartCL.Controls.ScrollBar]").FPosition+$Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseDown [line: 389, column: 30, file: SmartCL.Controls.ScrollBar]").FPageSize);
         }
      }
   }
   /// procedure TW3VerticalScrollbar.HandleDragBarMouseMove(Sender: TObject; shiftState: TShiftState; x: Integer; y: Integer)
   ///  [line: 395, column: 32, file: SmartCL.Controls.ScrollBar]
   ,HandleDragBarMouseMove:function(Self, Sender$10, shiftState$12, x$22, y$9) {
      var mNewPos = 0;
      var dy$7 = 0;
      if ($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 401, column: 6, file: SmartCL.Controls.ScrollBar]").FMoving) {
         dy$7 = y$9-$Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 404, column: 15, file: SmartCL.Controls.ScrollBar]").FEntry;
         TW3MovableControl.SetTop($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 407, column: 15, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 407, column: 16, file: SmartCL.Controls.ScrollBar]"),TInteger.EnsureRange(dy$7,TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 408, column: 7, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 408, column: 17, file: SmartCL.Controls.ScrollBar]")).Bottom$1,(TW3MovableControl.GetTop($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 409, column: 7, file: SmartCL.Controls.ScrollBar]").FDownBtn," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 409, column: 17, file: SmartCL.Controls.ScrollBar]"))-$Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 409, column: 23, file: SmartCL.Controls.ScrollBar]").FDragSize)));
         mNewPos = TW3CustomScrollBar.PixelOffsetToPosition(Self,TW3MovableControl.GetTop($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 412, column: 38, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 412, column: 49, file: SmartCL.Controls.ScrollBar]"))-(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 412, column: 56, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 412, column: 66, file: SmartCL.Controls.ScrollBar]")).Bottom$1+1));
         TW3CustomScrollBar.setPositionNoCalc($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseMove [line: 413, column: 5, file: SmartCL.Controls.ScrollBar]"),mNewPos);
      }
   }
   /// procedure TW3VerticalScrollbar.HandleDragBarMouseUp(Sender: TObject; button: TMouseButton; shiftState: TShiftState; x: Integer; y: Integer)
   ///  [line: 417, column: 32, file: SmartCL.Controls.ScrollBar]
   ,HandleDragBarMouseUp:function(Self, Sender$11, button$6, shiftState$13, x$23, y$10) {
      if ($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseUp [line: 421, column: 6, file: SmartCL.Controls.ScrollBar]").FMoving) {
         $Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseUp [line: 423, column: 5, file: SmartCL.Controls.ScrollBar]").FMoving = false;
         TW3CustomScrollBar.setPosition($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseUp [line: 424, column: 5, file: SmartCL.Controls.ScrollBar]"),TW3CustomScrollBar.PixelOffsetToPosition(Self,TW3MovableControl.GetTop($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseUp [line: 425, column: 7, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3VerticalScrollbar.HandleDragBarMouseUp [line: 425, column: 18, file: SmartCL.Controls.ScrollBar]"))-(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3VerticalScrollbar.HandleDragBarMouseUp [line: 425, column: 25, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3VerticalScrollbar.HandleDragBarMouseUp [line: 425, column: 35, file: SmartCL.Controls.ScrollBar]")).Bottom$1+1)));
         TW3CustomControl.ReleaseCapture(Self);
      }
   }
   /// procedure TW3VerticalScrollbar.InitializeObject()
   ///  [line: 350, column: 32, file: SmartCL.Controls.ScrollBar]
   ,InitializeObject:function(Self) {
      TW3CustomScrollBar.InitializeObject(Self);
      $Check(Self," in TW3VerticalScrollbar.InitializeObject [line: 353, column: 3, file: SmartCL.Controls.ScrollBar]").FMoving = false;
      TW3CustomControl.SetStyleClass($Check(Self," in TW3VerticalScrollbar.InitializeObject [line: 356, column: 12, file: SmartCL.Controls.ScrollBar]").FUpBtn,"TW3ScrollbarDownBtn");
      TW3CustomControl.SetStyleClass($Check(Self," in TW3VerticalScrollbar.InitializeObject [line: 357, column: 12, file: SmartCL.Controls.ScrollBar]").FDownBtn,"TW3ScrollbarUpBtn");
      TW3CustomControl.SetStyleClass($Check(Self," in TW3VerticalScrollbar.InitializeObject [line: 358, column: 13, file: SmartCL.Controls.ScrollBar]").FHandle$5,"TW3ScrollbarHandle");
      TW3CustomControl._setMouseDown(Self,$Event(Self,TW3VerticalScrollbar.HandleDragBarMouseDown));
      TW3CustomControl._setMouseMove(Self,$Event(Self,TW3VerticalScrollbar.HandleDragBarMouseMove));
      TW3CustomControl._setMouseUp(Self,$Event(Self,TW3VerticalScrollbar.HandleDragBarMouseUp));
   }
   /// procedure TW3VerticalScrollbar.Recalculate()
   ///  [line: 451, column: 32, file: SmartCL.Controls.ScrollBar]
   ,Recalculate:function(Self) {
      $Check(Self," in TW3VerticalScrollbar.Recalculate [line: 453, column: 3, file: SmartCL.Controls.ScrollBar]").FDragSize = TW3CustomScrollBar.calcSizeOfHandle(Self);
      $Check(Self," in TW3VerticalScrollbar.Recalculate [line: 454, column: 3, file: SmartCL.Controls.ScrollBar]").FDragPos = TW3CustomScrollBar.PositionToPixelOffset(Self,$Check(Self," in TW3VerticalScrollbar.Recalculate [line: 454, column: 37, file: SmartCL.Controls.ScrollBar]").FPosition);
   }
   /// procedure TW3VerticalScrollbar.Resize()
   ///  [line: 430, column: 32, file: SmartCL.Controls.ScrollBar]
   ,Resize:function(Self) {
      var mTop = 0;
      TW3MovableControl.Resize(Self);
      TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3VerticalScrollbar.Resize [line: 436, column: 12, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3VerticalScrollbar.Resize [line: 436, column: 13, file: SmartCL.Controls.ScrollBar]"),0,0,TW3MovableControl.ClientWidth(Self),28);
      TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3VerticalScrollbar.Resize [line: 437, column: 12, file: SmartCL.Controls.ScrollBar]").FDownBtn," in TW3VerticalScrollbar.Resize [line: 437, column: 13, file: SmartCL.Controls.ScrollBar]"),0,TW3MovableControl.ClientHeight(Self)-28,TW3MovableControl.ClientWidth(Self),28);
      TW3CustomScrollBar.Recalculate$($Check(Self," in TW3VerticalScrollbar.Resize [line: 440, column: 3, file: SmartCL.Controls.ScrollBar]"));
      if (($Check(Self," in TW3VerticalScrollbar.Resize [line: 442, column: 7, file: SmartCL.Controls.ScrollBar]").FTotal<1)||($Check(Self," in TW3VerticalScrollbar.Resize [line: 443, column: 7, file: SmartCL.Controls.ScrollBar]").FDragPos<0)) {
         TW3MovableControl.SetVisible($Check($Check(Self," in TW3VerticalScrollbar.Resize [line: 444, column: 13, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3VerticalScrollbar.Resize [line: 444, column: 14, file: SmartCL.Controls.ScrollBar]"),false);
      } else {
         TW3MovableControl.SetVisible($Check($Check(Self," in TW3VerticalScrollbar.Resize [line: 445, column: 13, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3VerticalScrollbar.Resize [line: 445, column: 14, file: SmartCL.Controls.ScrollBar]"),true);
      }
      mTop = TW3MovableControl.GetTop($Check($Check(Self," in TW3VerticalScrollbar.Resize [line: 447, column: 11, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3VerticalScrollbar.Resize [line: 447, column: 21, file: SmartCL.Controls.ScrollBar]"))+TW3MovableControl.GetHeight$($Check($Check(Self," in TW3VerticalScrollbar.Resize [line: 447, column: 27, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3VerticalScrollbar.Resize [line: 447, column: 37, file: SmartCL.Controls.ScrollBar]"))+1+$Check(Self," in TW3VerticalScrollbar.Resize [line: 447, column: 51, file: SmartCL.Controls.ScrollBar]").FDragPos;
      TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3VerticalScrollbar.Resize [line: 448, column: 13, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3VerticalScrollbar.Resize [line: 448, column: 14, file: SmartCL.Controls.ScrollBar]"),2,mTop,TW3MovableControl.ClientWidth(Self)-4,$Check(Self," in TW3VerticalScrollbar.Resize [line: 448, column: 45, file: SmartCL.Controls.ScrollBar]").FDragSize);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomScrollBar.FinalizeObject
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize$:function($){return $.ClassType.Resize($)}
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3CustomScrollBar.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
   ,getArea$:function($){return $.ClassType.getArea($)}
   ,Recalculate$:function($){return $.ClassType.Recalculate($)}
};
/// TW3ScrollbarLowerBtn = class (TW3CustomControl)
///  [line: 20, column: 3, file: SmartCL.Controls.ScrollBar]
var TW3ScrollbarLowerBtn = {
   $ClassName:"TW3ScrollbarLowerBtn",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3CustomControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3ScrollbarHigherBtn = class (TW3CustomControl)
///  [line: 21, column: 3, file: SmartCL.Controls.ScrollBar]
var TW3ScrollbarHigherBtn = {
   $ClassName:"TW3ScrollbarHigherBtn",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3CustomControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3ScrollbarHandle = class (TW3CustomControl)
///  [line: 22, column: 3, file: SmartCL.Controls.ScrollBar]
var TW3ScrollbarHandle = {
   $ClassName:"TW3ScrollbarHandle",
   $Parent:TW3CustomControl
   ,$Init:function ($) {
      TW3CustomControl.$Init($);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomControl.FinalizeObject
   ,InitializeObject:TW3CustomControl.InitializeObject
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize:TW3MovableControl.Resize
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3MovableControl.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
};
/// TW3HorizontalScrollbar = class (TW3CustomScrollBar)
///  [line: 78, column: 3, file: SmartCL.Controls.ScrollBar]
var TW3HorizontalScrollbar = {
   $ClassName:"TW3HorizontalScrollbar",
   $Parent:TW3CustomScrollBar
   ,$Init:function ($) {
      TW3CustomScrollBar.$Init($);
      $.FDragPos$1 = $.FDragSize$1 = $.FEntry$1 = 0;
      $.FMoving$1 = false;
   }
   /// function TW3HorizontalScrollbar.getArea() : Integer
   ///  [line: 255, column: 33, file: SmartCL.Controls.ScrollBar]
   ,getArea:function(Self) {
      return TW3MovableControl.GetLeft($Check($Check(Self," in TW3HorizontalScrollbar.getArea [line: 257, column: 14, file: SmartCL.Controls.ScrollBar]").FDownBtn," in TW3HorizontalScrollbar.getArea [line: 257, column: 24, file: SmartCL.Controls.ScrollBar]"))-1-(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3HorizontalScrollbar.getArea [line: 257, column: 37, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3HorizontalScrollbar.getArea [line: 257, column: 47, file: SmartCL.Controls.ScrollBar]")).Right$1+1);
   }
   /// procedure TW3HorizontalScrollbar.HandleDragBarMouseDown(Sender: TObject; button: TMouseButton; shiftState: TShiftState; x: Integer; y: Integer)
   ///  [line: 260, column: 34, file: SmartCL.Controls.ScrollBar]
   ,HandleDragBarMouseDown$1:function(Self, Sender$12, button$7, shiftState$14, x$24, y$11) {
      if (!button$7) {
         if (TRect$ContainsPos$1(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 265, column: 8, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 265, column: 19, file: SmartCL.Controls.ScrollBar]")),x$24,y$11)) {
            TW3CustomControl.SetCapture(Self);
            $Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 268, column: 7, file: SmartCL.Controls.ScrollBar]").FEntry$1 = x$24-TW3MovableControl.GetLeft($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 268, column: 21, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 268, column: 32, file: SmartCL.Controls.ScrollBar]"));
            $Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 269, column: 7, file: SmartCL.Controls.ScrollBar]").FMoving$1 = true;
         } else if ((x$24<TW3MovableControl.GetLeft($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 272, column: 14, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 272, column: 25, file: SmartCL.Controls.ScrollBar]")))&&(!TRect$ContainsPos$1(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 273, column: 15, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 273, column: 25, file: SmartCL.Controls.ScrollBar]")),x$24,y$11))) {
            TW3CustomScrollBar.setPosition($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 274, column: 7, file: SmartCL.Controls.ScrollBar]"),$Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 274, column: 19, file: SmartCL.Controls.ScrollBar]").FPosition-$Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 274, column: 30, file: SmartCL.Controls.ScrollBar]").FPageSize);
         } else if ((x$24>TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 276, column: 13, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 276, column: 24, file: SmartCL.Controls.ScrollBar]")).Right$1)&&(!TRect$ContainsPos$1(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 277, column: 15, file: SmartCL.Controls.ScrollBar]").FDownBtn," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 277, column: 25, file: SmartCL.Controls.ScrollBar]")),x$24,y$11))) {
            TW3CustomScrollBar.setPosition($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 278, column: 7, file: SmartCL.Controls.ScrollBar]"),$Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 278, column: 19, file: SmartCL.Controls.ScrollBar]").FPosition+$Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseDown [line: 278, column: 30, file: SmartCL.Controls.ScrollBar]").FPageSize);
         }
      }
   }
   /// procedure TW3HorizontalScrollbar.HandleDragBarMouseMove(Sender: TObject; shiftState: TShiftState; x: Integer; y: Integer)
   ///  [line: 284, column: 34, file: SmartCL.Controls.ScrollBar]
   ,HandleDragBarMouseMove$1:function(Self, Sender$13, shiftState$15, x$25, y$12) {
      var mNewPos$1 = 0;
      var dx$6 = 0;
      if ($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 290, column: 6, file: SmartCL.Controls.ScrollBar]").FMoving$1) {
         dx$6 = x$25-$Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 293, column: 15, file: SmartCL.Controls.ScrollBar]").FEntry$1;
         TW3MovableControl.SetLeft($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 296, column: 15, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 296, column: 16, file: SmartCL.Controls.ScrollBar]"),TInteger.EnsureRange(dx$6,TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 297, column: 7, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 297, column: 17, file: SmartCL.Controls.ScrollBar]")).Right$1,(TW3MovableControl.GetLeft($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 298, column: 7, file: SmartCL.Controls.ScrollBar]").FDownBtn," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 298, column: 17, file: SmartCL.Controls.ScrollBar]"))-$Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 298, column: 24, file: SmartCL.Controls.ScrollBar]").FDragSize$1)));
         mNewPos$1 = TW3CustomScrollBar.PixelOffsetToPosition(Self,TW3MovableControl.GetLeft($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 301, column: 38, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 301, column: 49, file: SmartCL.Controls.ScrollBar]"))-(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 301, column: 57, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 301, column: 67, file: SmartCL.Controls.ScrollBar]")).Right$1+1));
         TW3CustomScrollBar.setPositionNoCalc($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseMove [line: 302, column: 5, file: SmartCL.Controls.ScrollBar]"),mNewPos$1);
      }
   }
   /// procedure TW3HorizontalScrollbar.HandleDragBarMouseUp(Sender: TObject; button: TMouseButton; shiftState: TShiftState; x: Integer; y: Integer)
   ///  [line: 306, column: 34, file: SmartCL.Controls.ScrollBar]
   ,HandleDragBarMouseUp$1:function(Self, Sender$14, button$8, shiftState$16, x$26, y$13) {
      if ($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseUp [line: 309, column: 6, file: SmartCL.Controls.ScrollBar]").FMoving$1) {
         $Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseUp [line: 311, column: 5, file: SmartCL.Controls.ScrollBar]").FMoving$1 = false;
         TW3CustomScrollBar.setPosition($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseUp [line: 312, column: 5, file: SmartCL.Controls.ScrollBar]"),TW3CustomScrollBar.PixelOffsetToPosition(Self,TW3MovableControl.GetLeft($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseUp [line: 313, column: 6, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3HorizontalScrollbar.HandleDragBarMouseUp [line: 313, column: 17, file: SmartCL.Controls.ScrollBar]"))-(TW3MovableControl.GetBoundsRect($Check($Check(Self," in TW3HorizontalScrollbar.HandleDragBarMouseUp [line: 313, column: 25, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3HorizontalScrollbar.HandleDragBarMouseUp [line: 313, column: 35, file: SmartCL.Controls.ScrollBar]")).Right$1+1)));
         TW3CustomControl.ReleaseCapture(Self);
      }
   }
   /// procedure TW3HorizontalScrollbar.InitializeObject()
   ///  [line: 237, column: 34, file: SmartCL.Controls.ScrollBar]
   ,InitializeObject:function(Self) {
      TW3CustomScrollBar.InitializeObject(Self);
      $Check(Self," in TW3HorizontalScrollbar.InitializeObject [line: 240, column: 3, file: SmartCL.Controls.ScrollBar]").FMoving$1 = false;
      TW3CustomControl.SetStyleClass($Check(Self," in TW3HorizontalScrollbar.InitializeObject [line: 243, column: 12, file: SmartCL.Controls.ScrollBar]").FUpBtn,"TW3ScrollbarLeftBtn");
      TW3CustomControl.SetStyleClass($Check(Self," in TW3HorizontalScrollbar.InitializeObject [line: 244, column: 12, file: SmartCL.Controls.ScrollBar]").FDownBtn,"TW3ScrollbarRightBtn");
      TW3CustomControl.SetStyleClass($Check(Self," in TW3HorizontalScrollbar.InitializeObject [line: 245, column: 13, file: SmartCL.Controls.ScrollBar]").FHandle$5,"TW3ScrollbarHandle");
      TW3CustomControl._setMouseDown(Self,$Event(Self,TW3HorizontalScrollbar.HandleDragBarMouseDown$1));
      TW3CustomControl._setMouseMove(Self,$Event(Self,TW3HorizontalScrollbar.HandleDragBarMouseMove$1));
      TW3CustomControl._setMouseUp(Self,$Event(Self,TW3HorizontalScrollbar.HandleDragBarMouseUp$1));
   }
   /// procedure TW3HorizontalScrollbar.Recalculate()
   ///  [line: 339, column: 34, file: SmartCL.Controls.ScrollBar]
   ,Recalculate:function(Self) {
      $Check(Self," in TW3HorizontalScrollbar.Recalculate [line: 341, column: 3, file: SmartCL.Controls.ScrollBar]").FDragSize$1 = TW3CustomScrollBar.calcSizeOfHandle(Self);
      $Check(Self," in TW3HorizontalScrollbar.Recalculate [line: 342, column: 3, file: SmartCL.Controls.ScrollBar]").FDragPos$1 = TW3CustomScrollBar.PositionToPixelOffset(Self,$Check(Self," in TW3HorizontalScrollbar.Recalculate [line: 342, column: 37, file: SmartCL.Controls.ScrollBar]").FPosition);
   }
   /// procedure TW3HorizontalScrollbar.Resize()
   ///  [line: 318, column: 34, file: SmartCL.Controls.ScrollBar]
   ,Resize:function(Self) {
      var mLeft = 0;
      TW3MovableControl.Resize(Self);
      TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3HorizontalScrollbar.Resize [line: 324, column: 12, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3HorizontalScrollbar.Resize [line: 324, column: 13, file: SmartCL.Controls.ScrollBar]"),0,0,28,TW3MovableControl.ClientHeight(Self));
      TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3HorizontalScrollbar.Resize [line: 325, column: 12, file: SmartCL.Controls.ScrollBar]").FDownBtn," in TW3HorizontalScrollbar.Resize [line: 325, column: 13, file: SmartCL.Controls.ScrollBar]"),TW3MovableControl.ClientWidth(Self)-28,0,28,TW3MovableControl.ClientHeight(Self));
      TW3CustomScrollBar.Recalculate$($Check(Self," in TW3HorizontalScrollbar.Resize [line: 328, column: 3, file: SmartCL.Controls.ScrollBar]"));
      if (($Check(Self," in TW3HorizontalScrollbar.Resize [line: 330, column: 7, file: SmartCL.Controls.ScrollBar]").FTotal<1)||($Check(Self," in TW3HorizontalScrollbar.Resize [line: 331, column: 7, file: SmartCL.Controls.ScrollBar]").FDragPos$1<0)) {
         TW3MovableControl.SetVisible($Check($Check(Self," in TW3HorizontalScrollbar.Resize [line: 332, column: 13, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3HorizontalScrollbar.Resize [line: 332, column: 14, file: SmartCL.Controls.ScrollBar]"),false);
      } else {
         TW3MovableControl.SetVisible($Check($Check(Self," in TW3HorizontalScrollbar.Resize [line: 333, column: 13, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3HorizontalScrollbar.Resize [line: 333, column: 14, file: SmartCL.Controls.ScrollBar]"),true);
      }
      mLeft = TW3MovableControl.GetLeft($Check($Check(Self," in TW3HorizontalScrollbar.Resize [line: 335, column: 12, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3HorizontalScrollbar.Resize [line: 335, column: 22, file: SmartCL.Controls.ScrollBar]"))+TW3MovableControl.GetWidth$($Check($Check(Self," in TW3HorizontalScrollbar.Resize [line: 335, column: 29, file: SmartCL.Controls.ScrollBar]").FUpBtn," in TW3HorizontalScrollbar.Resize [line: 335, column: 39, file: SmartCL.Controls.ScrollBar]"))+1+$Check(Self," in TW3HorizontalScrollbar.Resize [line: 335, column: 52, file: SmartCL.Controls.ScrollBar]").FDragPos$1;
      TW3MovableControl.SetBounds$2($Check($Check(Self," in TW3HorizontalScrollbar.Resize [line: 336, column: 13, file: SmartCL.Controls.ScrollBar]").FHandle$5," in TW3HorizontalScrollbar.Resize [line: 336, column: 14, file: SmartCL.Controls.ScrollBar]"),mLeft,2,$Check(Self," in TW3HorizontalScrollbar.Resize [line: 336, column: 32, file: SmartCL.Controls.ScrollBar]").FDragSize$1,TW3MovableControl.ClientHeight(Self)-4);
   }
   ,Destroy:TW3TagObj.Destroy
   ,AfterUpdate:TW3CustomControl.AfterUpdate
   ,FinalizeObject:TW3CustomScrollBar.FinalizeObject
   ,InitializeObject$:function($){return $.ClassType.InitializeObject($)}
   ,MakeElementTagId:TW3TagObj.MakeElementTagId
   ,MakeElementTagObj:TW3TagObj.MakeElementTagObj
   ,StyleTagObject:TW3CustomControl.StyleTagObject
   ,ChildAdded:TW3Component.ChildAdded
   ,Create$18:TW3CustomControl.Create$18
   ,GetHeight:TW3MovableControl.GetHeight
   ,GetWidth:TW3MovableControl.GetWidth
   ,Resize$:function($){return $.ClassType.Resize($)}
   ,SetHeight:TW3MovableControl.SetHeight
   ,SetWidth:TW3MovableControl.SetWidth
   ,supportAdjustment:TW3CustomScrollBar.supportAdjustment
   ,CBClick:TW3CustomControl.CBClick
   ,CBKeyDown:TW3CustomControl.CBKeyDown
   ,CBKeyUp:TW3CustomControl.CBKeyUp
   ,CBMouseDown:TW3CustomControl.CBMouseDown
   ,CBMouseMove:TW3CustomControl.CBMouseMove
   ,CBMouseUp:TW3CustomControl.CBMouseUp
   ,GetEnabled:TW3CustomControl.GetEnabled
   ,Invalidate:TW3CustomControl.Invalidate
   ,SetEnabled:TW3CustomControl.SetEnabled
   ,getArea$:function($){return $.ClassType.getArea($)}
   ,Recalculate$:function($){return $.ClassType.Recalculate($)}
};
var vColorNames = [];
var vColorNames = ["aqua", "black", "blue", "fuchsia", "green", "gray", "lime", "maroon", "navy", "olive", "purple", "red", "silver", "teal", "white", "yellow"].slice();
var vColorValues = [];
var vColorValues = ["#0ff", "#000", "#00f", "#f0f", "#008000", "#808080", "#0f0", "#800000", "#000080", "#808000", "#800080", "#f00", "#c0c0c0", "#008080", "#fff", "#ff00"].slice();
var vCurrent = null;
var vScheduledControls = [];
var vScheduledCallbacks = [];
var vOnPerform = [];
var vPending = false;
var RegisterComponentsProc = null;
var DefaultDuration = 2;
var DefaultTiming = 1;
var vGetNow = undefined;
var vIsHighResolution = false;
var PressedCSSClass = "TW3Button_Pressed";
var Instance = null;
var vCaptureControl = null;
var vCaptureInitialized = false;
var Application$1 = null;
var GAnimationManager = null;
var GlobalRepeaterList = [];
var GForms = null;
var vUniqueNumber = 0;
var vVendor = 0;
var vDriver = null;
var vRequestAnimFrame = null;
var vCancelAnimFrame = null;
var $Application = function() {
   Application$1 = TW3CustomApplication.Create$20($New(TW3CustomApplication));
   TW3CustomApplication.CreateForm(Application$1,TForm1,true);
   TW3CustomApplication.RunApp(Application$1);
}
$Application();

 }
	window.onload = function () { bootstrap(); }
	</script>

</head>

<body></body>

</html>
